我有一个monorepo应用程序,其中包含两个子repo后端和前端。仔细看看下面的屏幕,显示了我当前的子目录后端和前端x1c 0d1x
我目前在根路径,所以我在前端目录中移动,然后我在前端子目录中点击npm install
命令,我得到node_modules和package-lock。json新创建
这个行为是不正常的,因为我已经链接了我的子目录到我的node_modules根目录,并在根包中添加了这些行。json:
{
"name": "gym-membersys",
"version": "1.0.0",
"description": "Gym membersys ",
"private": true,
"workspaces": [
"packages/*"
]
}
这是我在tsconfig.json
根文件中的内容
{
"compilerOptions": {
"target": "es5",
"moduleResolution": "node",
"esModuleInterop": true,
"noEmit": false,
"sourceMap": true,
"strict": true,
"preserveConstEnums": true
},
"compileOnSave": true,
"files": [],
"include": [],
"references": [
{ "path": "./packages/backend" },
{ "path": "./packages/frontend" }
]
}
我正在使用MacOs和Visual Studio代码以及NPM版本8。3.1.有没有人可以帮助我,我已经挣扎了大约2个星期,谢谢
2条答案
按热度按时间gojuced71#
这就是Monorepos的运作方式。每个包都有自己的
package.json
及其依赖项。根package.json
中的依赖项是全局可用的(对每个包。json)和共享。专门安装在每个子包的package.json
中的只有在那里可用。wnrlj8wa2#
我目前在根路径,所以我在前端目录中移动,然后我在前端子目录中点击npm install命令,我得到node_modules和package-lock。json新创建
这是根本原因IG。你应该从根目录安装deps。所以,如果你想只为
frontend
安装webpack
,你应该从root运行:如果你想要一个共享的依赖项(在所有包中),请这样做: