tsc正在尝试解析错误文件夹中的相对路径模块

时间:2017-10-18 18:22:49

标签: node.js typescript npm node-modules

我使用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的根。

我通过添加" main":" ./ dist / index.js"解决了这个问题。在myLib的package.json中

问题是当我尝试导入相对于myLib的路径时 与import Y from "myLib/subModule"

一样

这一次它没有用。 因为而不是查看node_modules/myLib/dist/subModule tsc正在查看不存在的node_modules/myLib/subModules/dist/

如何让编译器查看子模块的正确路径?

1 个答案:

答案 0 :(得分:1)

您可以使用tsconfig.json中的"paths" key in the "compilerOptions"解决此问题。像这样:

{
  "compilerOptions": {
    "paths": {
      "myLib/*": "node_modules/myLib/dist/*"
    }
  }
}

可悲的是,这是一个standing issue,当"types"中有package.json键时,TypeScript编译器如何解析定义文件。