【发布时间】:2019-09-25 19:14:18
【问题描述】:
假设我们有package1 和package2。如果package2 尝试导入package1 模块,我们会收到一条错误消息module not found。导入看起来像import { ... } from 'package1/styles'。请记住,像 import { ... } from 'package1' 这样的导入是有效的。在我看来,这些导入问题是由于 lerna 错误地链接文件夹引起的。我希望package2 的node_modules 应该只包含package1/dist 而不是package1。这些导入问题应该如何解决?
相关package1文件如下。
package.json:
...
"main": "./dist/index.js",
"files": ["dist"]
...
tsconfig.json:
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": false,
"declaration": true,
"jsx": "react",
"allowJs": false,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"lib": ["esnext", "dom"]
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
在我们运行lerna run build 之后,我们得到以下目录结构:
packages/package2/node_modules/package1/
├── dist
│ ├── index.d.ts
│ ├── index.js
│ └── styles
│ ├── index.d.ts
│ └── index.js
├── node_modules
├── package-lock.json
├── package.json
├── src
│ ├── index.ts
│ └── styles
│ └── index.ts
├── tsconfig.json
└── webpack.config.js
【问题讨论】:
标签: node.js typescript lerna