tsc 正在尝试解析错误文件夹中的相对路径模块
tsc is trying to resolve relative path modules in the wrong folder
我正在使用 npm link
来引用我在测试项目中开发的打字稿库
这意味着我的 node_modules 看起来像这样:
node_modules/
| myLib/
| | dist/
| | | subModule/
| | | | index.js
| | | | index.d.ts
| | | index.js
| | | index.d.ts
| | node_modules/
| | src/
| | tsconfig.json
| | package.json
这意味着当我尝试使用 import X from "myLib"
引用我的库时,我必须告诉编译器源在 /dist forlder 中,而不是 myLib 的根目录中。
我通过在 myLibpackage.json 中添加一个 "main": "./dist/index.js" 来解决这个问题
问题是当我尝试导入一个相对于 myLib 的路径时
喜欢import Y from "myLib/subModule"
这次不行了。
因为 tsc 不是在查看 node_modules/myLib/dist/subModule
,而是在查看 node_modules/myLib/subModules/dist/
,它不存在。
如何让编译器查看子模块的正确路径?
您可以使用 tsconfig.json
中的 "paths"
key in the "compilerOptions"
解决此问题。像这样:
{
"compilerOptions": {
"paths": {
"myLib/*": "node_modules/myLib/dist/*"
}
}
}
遗憾的是,当您的 package.json
.
中有 "types"
键时,这与 TypeScript 编译器如何解析定义文件有些类似 standing issue
我正在使用 npm link
来引用我在测试项目中开发的打字稿库
这意味着我的 node_modules 看起来像这样:
node_modules/
| myLib/
| | dist/
| | | subModule/
| | | | index.js
| | | | index.d.ts
| | | index.js
| | | index.d.ts
| | node_modules/
| | src/
| | tsconfig.json
| | package.json
这意味着当我尝试使用 import X from "myLib"
引用我的库时,我必须告诉编译器源在 /dist forlder 中,而不是 myLib 的根目录中。
我通过在 myLibpackage.json 中添加一个 "main": "./dist/index.js" 来解决这个问题
问题是当我尝试导入一个相对于 myLib 的路径时
喜欢import Y from "myLib/subModule"
这次不行了。
因为 tsc 不是在查看 node_modules/myLib/dist/subModule
,而是在查看 node_modules/myLib/subModules/dist/
,它不存在。
如何让编译器查看子模块的正确路径?
您可以使用 tsconfig.json
中的 "paths"
key in the "compilerOptions"
解决此问题。像这样:
{
"compilerOptions": {
"paths": {
"myLib/*": "node_modules/myLib/dist/*"
}
}
}
遗憾的是,当您的 package.json
.
"types"
键时,这与 TypeScript 编译器如何解析定义文件有些类似 standing issue