typescript - lerna 没有在包中生成 node_module
问题描述
我有一个带有 Lerna 的 monorepo 和具有基本结构的 typescript
- root
package.json
- packages
package-A
package.json
src
package-B
package.json
src
根 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"
]
}
每个包的 tsconfig 看起来像
{
"extends": "../../tsconfig.json",
"include": ["src/**/*.ts"],
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src",
"baseUrl": "."
}
}
现在,当我运行包 A 和包 B 中的所有依赖项lerna bootstrap
或lerna boostrap --hoist
所有依赖项时,都会转到根模块。在包级别不会生成 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
但是当我将它作为脚本添加到包的 package.json 中"start:dev": "nodemon"
时,npm run start:dev
它就可以工作了。
这就像 nodemon 抱怨ts-node
在包的 node_modules/.bin 中找不到二进制文件(因为它没有生成),但是当我使用它运行它时,start:dev
它会从根 node_modules 中获取它。
我在设置中错过了什么吗?
解决方案
推荐阅读
- swift - 无法快速访问 TableViewcell 类中的协议功能
- dataframe - 在 pyspark 中使用过滤条件求和
- c++ - c ++ lambda传递自动参数类型
- html - 使用 transform 属性为 div 的宽度设置动画
- reactjs - 如何修复未安装组件的更新?
- linux - 链接到 .so 文件中的特定符号版本
- selenium - 如何处理“等待”或“加载 Web 应用程序”
- excel - VBA 如何使用 offset(x,x) 减去 offset(x,x).=value.copy 执行计算
- python - 在 Visual C++ 中嵌入 Python
- sql - SQL 中的函数限制无法正常工作