0

我已经能够通过运行将本地包导入到项目中yarn link ../path,这会在 中添加一个resolution字段来package.json告诉捆绑器在哪里可以找到包,基本上是给它一个别名。

奇怪的是,虽然这在我正在导入 from 的文件时有效.jsx,但没有更改任何其他内容,如果我正在导入 from .tsx,则找不到该模块。

所以罪魁祸首可能是 ts-loader、Typescript(它如何处理导入)、webpack 或 yarn。我不知道这是因为我做错了什么还是这是一个错误。

所以文件夹结构可能是:

--ProjectMain
  ----/src
  ------index.jsx
  ----package.json

--ProjectToImport
  ----/src
  ------index.js
  ----package.json

webpack.config.js在 ProjectMain中有以下内容

module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /\.yarn/,
      },
      {
        test: /\.jsx?$/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-react']
          },
        },
        exclude: /\.yarn/
      }
    ],
  },

ProjectToImport 的index.js样子

export function SharedLibTest(a){
  console.log(a)
}
4

1 回答 1

0

似乎整个事情是因为在我的ProjectToImport/package.json,我使用"main": "/src/index.js"了,而不是"main": "src/index.js"

我不知道为什么这会因为我使用 TS 而有所不同,愿你们中的聪明人启发我。

于 2021-08-12T19:46:29.857 回答