yarn 工作空间也可以与 npm 一起使用吗?
Do yarn workspaces work with npm, too?
我查看了一个使用 yarn 而不是 npm 作为构建工具的 repo。
在package.json中定义了工作空间来处理多个子项目:
{
"workspaces": [
"packages/*"
],
"dependencies": [],
"devDependencies": [
// long list
]
}
因此,根 package.json
不包含任何运行时依赖项。只有 packages/*/package.json
包含那些。
要编译(并以开发模式启动)我这样做:
yarn install
yarn start
我没有找到任何文档,workspaces
也被 npm 识别并正确使用。
有没有办法让它也与 npm 一起工作?
npm 不支持在 monorepo 中管理依赖项。 Lerna 包用于管理具有交叉依赖关系的 JavaScript 项目。我相信 Lerna 在底层使用 Yarn,但是使用 Yarn 作为项目的包管理器,这个功能是开箱即用的。
这里有一个 repo,可能有助于了解 Yarn 和 Lerna 如何协同工作:https://github.com/Quramy/lerna-yarn-workspaces-example
npm
计划在 v7, hopefully. They've written about it in their blog and there's an accepted proposal 的某个地方实施 workspaces
。
自 2020 年 8 月 11 日起,工作区在 v7 测试版中可用。
RFC 26 First phase of workspaces
support is added. This changes
npm’s behavior when a root project’s package.json
file contains a
workspaces
field.
https://blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major
您可以在此处查看和下载测试版:
现在 npm v7.0.0 已经出来了,npm 支持 workspaces
。您可以从单个 top-level 根包中管理多个包。在 https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/
查看更多
默认情况下,您的工作流程不会获得 npm v7.0.0,除非您使用 npm install -g npm@7
.
安装它
NPM 版本 7 支持工作区管理。现在我们可以使用 npm workspace 管理我们的工作区依赖关系。
有关工作区支持的更多信息,请参见此处的官方网站。
https://docs.npmjs.com/cli/v7/using-npm/workspaces
如果您正在寻找一个简单的示例,请遵循此 link
https://github.com/pravanjan/npm-workspace-example/tree/master
使用节点 v16.6.1 测试
npm 7.20.3
我查看了一个使用 yarn 而不是 npm 作为构建工具的 repo。
在package.json中定义了工作空间来处理多个子项目:
{
"workspaces": [
"packages/*"
],
"dependencies": [],
"devDependencies": [
// long list
]
}
因此,根 package.json
不包含任何运行时依赖项。只有 packages/*/package.json
包含那些。
要编译(并以开发模式启动)我这样做:
yarn install
yarn start
我没有找到任何文档,workspaces
也被 npm 识别并正确使用。
有没有办法让它也与 npm 一起工作?
npm 不支持在 monorepo 中管理依赖项。 Lerna 包用于管理具有交叉依赖关系的 JavaScript 项目。我相信 Lerna 在底层使用 Yarn,但是使用 Yarn 作为项目的包管理器,这个功能是开箱即用的。
这里有一个 repo,可能有助于了解 Yarn 和 Lerna 如何协同工作:https://github.com/Quramy/lerna-yarn-workspaces-example
npm
计划在 v7, hopefully. They've written about it in their blog and there's an accepted proposal 的某个地方实施 workspaces
。
自 2020 年 8 月 11 日起,工作区在 v7 测试版中可用。
RFC 26 First phase of
workspaces
support is added. This changes npm’s behavior when a root project’spackage.json
file contains aworkspaces
field.
https://blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major
您可以在此处查看和下载测试版:
现在 npm v7.0.0 已经出来了,npm 支持 workspaces
。您可以从单个 top-level 根包中管理多个包。在 https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/
默认情况下,您的工作流程不会获得 npm v7.0.0,除非您使用 npm install -g npm@7
.
NPM 版本 7 支持工作区管理。现在我们可以使用 npm workspace 管理我们的工作区依赖关系。
有关工作区支持的更多信息,请参见此处的官方网站。
https://docs.npmjs.com/cli/v7/using-npm/workspaces
如果您正在寻找一个简单的示例,请遵循此 link
https://github.com/pravanjan/npm-workspace-example/tree/master
使用节点 v16.6.1 测试 npm 7.20.3