关于npm publish发包
无论是发布JS包到私有/公有源,都会走npm publish命令进行发布,但之前并注意到publish时针对lock文件处理,又比如resolutions字段处理等。这里将我所了解的问题点整理下。
发布包不包含package-lock.json
- 开发JS包,源码管理时我们需要将package-lock.json纳入VSC管理,但publish时lock文件是不会被publish。
- 在具体项目中当我们执行npm install命令,顶级包也即目标项目的lock文件会被识别进行具体版本的安装,但依赖的包中所包含的lock文件是会被直接忽视的。
发布包中包含lock文件?
- npm-cli >=v6情况下,无论package.json-files白名单中是否配置package-lock.json,都不会被发布。但老版CLI下,通过白名单配置是可以发布的。
- 实测v6即会出现该问题。通过官方版本历史查询可以看到比如安装nodev8默认npm cli为v6,尝试该版本即可复现该问题。