Yarn:将 JavaScript 依赖项重新部署到生产服务器的过程(使用 `yarn.lock` 文件)
Yarn: Procedure for redeploying JavaScript dependencies to Production Server (usage of `yarn.lock` file)
我已阅读有关 Yarn 的文档,我知道 lock
文件应该提交给 VC。请参阅 this and which explains at a high-level why the lock file is necessary, and this,其中列出了一堆命令,但没有太多解释它们的实际作用!
我还在 Whosebug 上阅读了很多关于 lock
文件是否应该提交给 VC.
的问题
但是,所有文档和 SO 线程似乎都忽略了我想知道的细节,如下所示;什么是正确的程序(运行 的正确命令串):
- 在需要时更新
yarn.lock
文件(即在开发环境中我想提取最新的次要版本并更新 lock
文件以反映这一点)
- 为了让我的锁定文件与其他开发人员保持同步,以确保他们 developing/testing 来自完全相同的依赖版本,并且
- 对于 updating/re-synching 生产服务器上的
node_modules
目录(即确保生产服务器不 运行ning 在 different/breaking 版本的依赖包上)
我问的部分原因是过去在服务器上执行 git pull
时,我遇到消息告诉我 yarn.lock
文件已独立于 development/VC 更新过程。就我而言,绝不允许发生这种情况。
以下信息基于我们在 Orange 的日常使用,这可能不是唯一的事实。
1 ) 正在更新 yarn.lock
yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]
此命令根据 package.json
文件中指定的版本范围将依赖项更新为最新版本。 yarn.lock
文件也将被重新创建。
来源:https://yarnpkg.com/en/docs/cli/upgrade
2) 开发者之间的依赖关系
我建议你做的是创建一个脚本来检查当前的 'recomended' 版本:
yarn check
验证当前项目 package.json
中的包依赖版本是否与 yarn 的锁定文件中的相匹配。
来源:https://yarnpkg.com/en/docs/cli/check
3) 更新服务器生产
与 2 ) 相同,使用 git 挂钩脚本,如果 package.json
版本正确,如果不启动 yarn update
,应该可以帮助您 yarn check
。 =21=]
老实说,这是opinion/preference的事情。我看到了一些策略:
- 使用
yarn upgrade
- 在 运行
yarn
之前手动提升 package.json
中的版本
就像 Fabien 提到的那样:使用 yarn check
您可以使用 yarn 离线镜像,将 npm 包的缓存提交到版本控制中。 (参见 this 中篇文章)
此外,使用 yarn --offline
有很多好处:
- 构建速度更快,因为您不必从 npm 注册表中获取包。
- 如果您没有正确的依赖项,您的构建将会失败。
我已阅读有关 Yarn 的文档,我知道 lock
文件应该提交给 VC。请参阅 this and which explains at a high-level why the lock file is necessary, and this,其中列出了一堆命令,但没有太多解释它们的实际作用!
我还在 Whosebug 上阅读了很多关于 lock
文件是否应该提交给 VC.
但是,所有文档和 SO 线程似乎都忽略了我想知道的细节,如下所示;什么是正确的程序(运行 的正确命令串):
- 在需要时更新
yarn.lock
文件(即在开发环境中我想提取最新的次要版本并更新lock
文件以反映这一点) - 为了让我的锁定文件与其他开发人员保持同步,以确保他们 developing/testing 来自完全相同的依赖版本,并且
- 对于 updating/re-synching 生产服务器上的
node_modules
目录(即确保生产服务器不 运行ning 在 different/breaking 版本的依赖包上)
我问的部分原因是过去在服务器上执行 git pull
时,我遇到消息告诉我 yarn.lock
文件已独立于 development/VC 更新过程。就我而言,绝不允许发生这种情况。
以下信息基于我们在 Orange 的日常使用,这可能不是唯一的事实。
1 ) 正在更新 yarn.lock
yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]
此命令根据 package.json
文件中指定的版本范围将依赖项更新为最新版本。 yarn.lock
文件也将被重新创建。
来源:https://yarnpkg.com/en/docs/cli/upgrade
2) 开发者之间的依赖关系
我建议你做的是创建一个脚本来检查当前的 'recomended' 版本:
yarn check
验证当前项目 package.json
中的包依赖版本是否与 yarn 的锁定文件中的相匹配。
来源:https://yarnpkg.com/en/docs/cli/check
3) 更新服务器生产
与 2 ) 相同,使用 git 挂钩脚本,如果 package.json
版本正确,如果不启动 yarn update
,应该可以帮助您 yarn check
。 =21=]
老实说,这是opinion/preference的事情。我看到了一些策略:
- 使用
yarn upgrade
- 在 运行
yarn
之前手动提升
package.json
中的版本- 使用
就像 Fabien 提到的那样:使用
yarn check
您可以使用 yarn 离线镜像,将 npm 包的缓存提交到版本控制中。 (参见 this 中篇文章)
此外,使用
yarn --offline
有很多好处:- 构建速度更快,因为您不必从 npm 注册表中获取包。
- 如果您没有正确的依赖项,您的构建将会失败。