首页 > 解决方案 > NPM 7 工作区 - 多个 node_modules?

问题描述

我无法使用 NPM 7 Workspaces 运行我的应用程序。我期望npm install从根文件node_modules夹中为我的每个工作区创建一个文件夹,类似于 Lerna。但是,当我npm install在根目录运行时,我只能node_modules在根级别获得一个。这是预期的吗?

之前 的示例结构npm i

.
├── package.json ->  { "workspaces": ["packages/*"] }
└── packages
    ├── a
    │   ├── index.js
    │   └── package.json
    ├── b
    │   ├── index.js
    │   └── package.json
    └── c
        ├── index.js
        └── package.json

之后 的示例结构npm i(注意只有一个package-lock.json/ node_modules):

.
├── package.json ->  { "workspaces": ["packages/*"] }
├── **node_modules**
├── **package-lock.json**
└── packages
    ├── a
    │   ├── index.js
    │   └── package.json
    ├── b
    │   ├── index.js
    │   └── package.json
    └── c
        ├── index.js
        └── package.json

节点版本:16.4.2

NPM 版本:7.18.1

标签: npmnpm-installmonoreponpm-workspaces

解决方案


更新:在搞砸了一百万件事之后,我终于去删除了该项目并重新克隆了它。在此之后它起作用了。我相信这是因为我最初克隆项目时使用的是旧的 node/npm 版本。一定是一些时髦的状态在附近徘徊。无论如何希望这可以帮助任何有同样问题的人!


推荐阅读