使用Typescript处理npm monorepo

yzuktlbb  于 2023-04-30  发布在  TypeScript
关注(0)|答案(2)|浏览(196)

我有一个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个星期,谢谢

gojuced7

gojuced71#

这就是Monorepos的运作方式。每个包都有自己的package.json及其依赖项。根package.json中的依赖项是全局可用的(对每个包。json)和共享。专门安装在每个子包的package.json中的只有在那里可用。

wnrlj8wa

wnrlj8wa2#

我目前在根路径,所以我在前端目录中移动,然后我在前端子目录中点击npm install命令,我得到node_modules和package-lock。json新创建
这是根本原因IG。你应该从根目录安装deps。所以,如果你想只为frontend安装webpack,你应该从root运行:

npm install webpack -w frontend

如果你想要一个共享的依赖项(在所有包中),请这样做:

npm install abbrev

相关问题