Packer 2.6.0: buildpack 使用注意

[nodejs/spa] buildpack 改动注意点

目前为了规范前端项目开发流程,加速前端项目打包,并且使最终编译的结果可复现,统一使用 npm ci 替换 npm install

npm ci 需要 package-lock.json 文件支持。因此需要开发人员将 package-lock.json 文件也纳入版本控制管理(检查 .gitignore 文件,将 package-lock.json 移除)。

参考文档: npm-package-locks

bp 改动点:

  1. packer v5
    1. 尽可能多的利用 NFS 缓存 .npm 和 .shepherd 目录
  2. packer v6 (2.6.0)
    • 根据 package.json / package-lock.json / .npmrc 文件缓存依赖,若依赖文件未变,Packer 会利用缓存依赖,只进行代码编译;
    • 使用 npm ci 替代 npm install,速度提升明显
    • 定制打包镜像,内置公司级别 npm config 和 一些 node 环境变量配置
    • 运行时时区配置沉淀到 herd 基础镜像

常见问题解答

  1. No [package-lock.json] found!
    解答:在项目目录下运行 npm install,将 package-lock.json 加入版本控制。

  2. cipm can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with npm install before continuing.
    解答:package-lock.json 已经存在,但是任何 package.json 或者 node_modules 文件夹的改动会导致 package-lock.json 不同步,需要手动运行 npm install 后提交最新的 package-lock.json 文件。

林俊

Read more posts by this author.

中国浙江省杭州市

Subscribe to The Terminus Blog

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!