纱线工作区是否也与npm一起工作?
我查看了一个回购协议,它使用纱线而不是npm作为构建工具 在package.json中,它定义了处理多个子项目的工作区:纱线工作区是否也与npm一起工作?,npm,package.json,yarnpkg,Npm,Package.json,Yarnpkg,我查看了一个回购协议,它使用纱线而不是npm作为构建工具 在package.json中,它定义了处理多个子项目的工作区: { "workspaces": [ "packages/*" ], "dependencies": [], "devDependencies": [ // long list ] } 因此,根package.json不包含任何运行时依赖项。只有packages/*/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