[nodejs/spa] buildpack 改动注意点
目前为了规范前端项目开发流程,加速前端项目打包,并且使最终编译的结果可复现,统一使用 npm ci
替换 npm install
。
npm ci
需要 package-lock.json 文件支持。因此需要开发人员将 package-lock.json 文件也纳入版本控制管理(检查 .gitignore 文件,将 package-lock.json 移除)。
参考文档: npm-package-locks
bp 改动点:
- packer v5
- 尽可能多的利用 NFS 缓存 .npm 和 .shepherd 目录
- packer v6 (2.6.0)
- 根据 package.json / package-lock.json / .npmrc 文件缓存依赖,若依赖文件未变,Packer 会利用缓存依赖,只进行代码编译;
- 使用
npm ci
替代npm install
,速度提升明显 - 定制打包镜像,内置公司级别 npm config 和 一些 node 环境变量配置
- 运行时时区配置沉淀到 herd 基础镜像
常见问题解答
No [package-lock.json] found!
解答:在项目目录下运行
npm install
,将 package-lock.json 加入版本控制。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 文件。