在 JS 中工作时,在 Typescript 项目中添加本地依赖项不起作用
Adding local dependency in a Typescript project doesn't work when it works in JS
我已经能够通过 运行 yarn link ../path
将本地包导入到项目中,它向 package.json
添加了一个 resolution
字段来告诉打包器在哪里找到一个包,基本上给它一个别名。
奇怪的是,虽然当我从 .jsx
导入的文件时这有效,但没有更改任何其他内容,如果我从 .tsx
导入,则模块不是找到了。
所以罪魁祸首可能是 ts-loader、Typescript(它如何处理导入)、webpack 或 yarn。我不知道这是因为我做错了什么还是这是一个错误。
因此文件夹结构可能是:
--ProjectMain
----/src
------index.jsx
----package.json
--ProjectToImport
----/src
------index.js
----package.json
我在 ProjectMainwebpack.config.js
中有以下内容
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)
}
似乎整件事是因为在我的 ProjectToImport/package.json
中,我使用了 "main": "/src/index.js"
,而不是 "main": "src/index.js"
我不知道为什么就因为我用的是TS就不同,请各位大侠赐教。
我已经能够通过 运行 yarn link ../path
将本地包导入到项目中,它向 package.json
添加了一个 resolution
字段来告诉打包器在哪里找到一个包,基本上给它一个别名。
奇怪的是,虽然当我从 .jsx
导入的文件时这有效,但没有更改任何其他内容,如果我从 .tsx
导入,则模块不是找到了。
所以罪魁祸首可能是 ts-loader、Typescript(它如何处理导入)、webpack 或 yarn。我不知道这是因为我做错了什么还是这是一个错误。
因此文件夹结构可能是:
--ProjectMain
----/src
------index.jsx
----package.json
--ProjectToImport
----/src
------index.js
----package.json
我在 ProjectMainwebpack.config.js
中有以下内容
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)
}
似乎整件事是因为在我的 ProjectToImport/package.json
中,我使用了 "main": "/src/index.js"
,而不是 "main": "src/index.js"
我不知道为什么就因为我用的是TS就不同,请各位大侠赐教。