纱线工作区是否也与npm一起工作?

纱线工作区是否也与npm一起工作?,npm,package.json,yarnpkg,Npm,Package.json,Yarnpkg,我查看了一个回购协议,它使用纱线而不是npm作为构建工具 在package.json中,它定义了处理多个子项目的工作区: { "workspaces": [ "packages/*" ], "dependencies": [], "devDependencies": [ // long list ] } 因此,根package.json不包含任何运行时依赖项。只有packages/*/package.json包含这些内容 要编译(并在开发模式下启动),我需要

我查看了一个回购协议,它使用纱线而不是npm作为构建工具

在package.json中,它定义了处理多个子项目的工作区:

{
  "workspaces": [
    "packages/*"
  ],
  "dependencies": [],
  "devDependencies": [
    // long list
  ]
}
因此,根
package.json
不包含任何运行时依赖项。只有
packages/*/package.json
包含这些内容

要编译(并在开发模式下启动),我需要:

我没有发现npm也认可并正确使用
工作区的文档


有没有办法让它也能与npm一起工作?

npm不支持在monorepo中管理依赖项。该包用于管理具有交叉依赖关系的JavaScript项目。我相信Lerna在引擎盖下使用了Thread,但是Thread作为您项目的包管理器,这一功能得到了开箱即用的支持


以下是一份可能有助于了解Thread和Lerna如何合作的回购协议:

npm
计划在未来的某个地方实施
工作区。他们已经在他们的博客中发布了。

从2020-08-11起,v7测试版中提供了工作区

添加了第一阶段的
工作区
支持。这就改变了 根项目的
package.json
文件包含
工作区
字段

您可以在此处查看和下载测试版:


现在npm v7.0.0已经推出,npm支持
工作空间。您可以从单个顶级根包中管理多个包。更多信息请访问


默认情况下,除非使用
npm install-g安装,否则您的工作流将不会获得npm v7.0.0npm@7

Npm有一个配置文件,但在那里配置文件称为工作区。json@MarkusPscheidt你的评论具有误导性:该链接指向(第三方)软件包,不是NPM包的官方功能manager@StevenLiekens正确的。谢谢你澄清。@helt你能不能把接受的答案更新为Sahan Amarsha的答案。我认为,考虑到已经到2020年底,目前公认的答案是完全错误的。@BohdanTsymbala我犹豫了一下,因为我的假设是npm 7还不是最广泛使用的npm版本。除此之外,有一个新答案的事实并不意味着以前的答案不正确——只是过时了。
Lerna
使用
npm
作为默认值
npmClient
,但您可以将其设置为使用:
{“npmClient”:“纱线”,“使用工作空间”:true}
从现在起,我会非常小心使用NPM7。几天来,我一直在使用非常少的可用文档和这里的博文来处理工作区:表面上看,这看起来非常令人兴奋,但我还没能完成任何工作。特别是,在我到目前为止的测试中,以下内容绝对不起作用。“如果没有工作区,React应用程序会抱怨找不到名为@xyz/ui的模块,并会开始在npm官方注册表中查找该模块。”
yarn install
yarn start