rak*_*tin 3 azure-devops azure-pipelines yarnpkg-v2
我正在 azure devops 中设置构建管道。有一个名为 YarnInstaller@3 的助理任务,它允许我安装特定版本的 Yarn。但是,列出的唯一可用版本是 1.x,最新版本是 1.22。
https://yarnpkg.com/getting-started/install上有关于从 v1 迁移到 v2+ 的迁移说明,我已在本地完成此操作。由于只有yarn@1.x可用,似乎我每次运行构建时都必须迁移,例如
这似乎没有必要,特别是因为我已经提交了.yarnrc.yml和.yarn子目录。我这样说有错吗?还有另一种方法可以在我的管道中安装yarn@2+吗?
您可以在管道中使用以下命令行将 Yarn 版本更新为2.x.
yarn set version berry
yarn set version 2.x
Run Code Online (Sandbox Code Playgroud)
欲了解更多详情,您可以查看:
下面是我在我这边测试的示例管道,它可以按预期工作。您可以引用它并在构建管道中添加相关步骤。
steps:
. . .
- task: Bash@3
displayName: 'Yarn version before update'
inputs:
targetType: inline
script: |
echo "Yarn version before update:"
yarn --version
- task: Bash@3
displayName: 'Update Yarn version to 2.x'
inputs:
targetType: inline
script: |
yarn set version berry
yarn set version 2.x
- task: Bash@3
displayName: 'Yarn version after update'
inputs:
targetType: inline
script: |
echo "Yarn version after update:"
yarn --version
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用 Node Corepack,正如 Yarn 文档所建议的那样。这使您能够运行现代版本的 Yarn (2+),而无需安装 Yarn Classic (1)。
\n首先,添加packageManager到您的package.json,例如:
"packageManager": "yarn@3.6.0"\nRun Code Online (Sandbox Code Playgroud)\n(这应该适用于 Yarn 的所有现代版本:2、3、4,以及可能的未来版本)
\n完成此操作后,您将不再需要在存储库中保留 Yarn 二进制文件。您可以安全地yarnPath从中删除yarnrc.yml,并且可以删除文件夹的内容.yarn/releases。
然后(假设您安装了 Node 14+),您可能需要通过运行以下命令来启用 Corepack:
\ncorepack enable\nRun Code Online (Sandbox Code Playgroud)\n如果一切顺利,运行
\nyarn -v\nRun Code Online (Sandbox Code Playgroud)\n您的项目中现在应该返回正确的版本号。
\n请注意,第一次使用Node CorepackpackageManager中指定的二进制文件package.json时,将在后台透明地下载它,因此您需要互联网访问,并且第一个命令可能需要几秒钟才能完成。之后,您将能够在无需访问互联网的情况下使用该二进制文件,并且不会出现任何延迟。
现在你已经验证了你的设置在本地计算机上正常工作,是时候在 Azure Pipelines 上执行相同的操作了。这是完整的设置,从无到你的第一个 Yarn 驱动的命令:
\ncorepack enable\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
10661 次 |
| 最近记录: |