Ang*_*ant 6 npm typescript package.json lerna monorepo
我有一个带有 Lerna 的 monorepo 和具有基本结构的 typescript
- root
package.json
- packages
package-A
package.json
src
package-B
package.json
src
Run Code Online (Sandbox Code Playgroud)
根package.json tsconfig配置
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"sourceMap": true,
"allowSyntheticDefaultImports": true,
"paths": {
"@namespace/*": [
"packages/*/src"
]
},
"esModuleInterop": true,
"skipLibCheck": true,
"types": [],
"typeRoots": [
"./node_modules/@types"
]
},
"exclude": [
"node_modules",
"dist"
]
}
Run Code Online (Sandbox Code Playgroud)
每个包的 tsconfig 看起来像
{
"extends": "../../tsconfig.json",
"include": ["src/**/*.ts"],
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src",
"baseUrl": "."
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我运行时lerna bootstrap,lerna boostrap --hoist包 A 和包 B 中的所有依赖项都会转到根模块。在包级别不会生成 node_modules 文件夹。
这是正常行为吗?
同样在开发中,在包中我有一个运行的nodemon脚本ts-node -r tsconfig-paths/register ./src/index.ts
当我直接从命令行运行nodemon时,我得到
sh: ts-node: command not found
[nodemon] failed to start process, "ts-node -r tsconfig-paths/register ./src/index.ts" exec not found
Run Code Online (Sandbox Code Playgroud)
但是当我将它作为脚本添加到包的 package.json 中"start:dev": "nodemon"并且我这样做npm run start:dev时,它就可以工作了。
这就像nodemon抱怨ts-node在包的node_modules/.bin中找不到二进制文件(因为它没有生成),但是当我用它运行它时,start:dev它会从根node_modules中获取它..?
我在设置中错过了什么吗?
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |