如何最好地自动化部署依赖 NPM 的项目?

How to best automate deployment of NPM-dependent project?

我习惯于根据 Composer(PHP 的 NPM 表兄弟)部署代码,该代码包含 .json.lock 文件。第一个描述包和您的版本限制,第二个准确列出安装的内容。总是有一个锁定文件,你 运行 composer install 你肯定会收到同一套包裹; 运行ning composer update 将重新读取 json 文件、安装新版本并更新锁定文件。

这对于生产部署来说非常棒,因为您不需要检查您对版本控制系统的依赖关系,并且您肯定会在生产中拥有与在开发中完全相同的依赖集。

我的问题是:如何最好地自动部署依赖于 NPM 的代码?是否可以实现类似Composer的方法?我注意到 npm install 只会安装 package.json 文件中最先可用的内容。在第一个 运行 之后,即如果您更改版本约束,则必须手动 npm update 该包 - 这将使自动部署变得无用,因为无法签入版本控制 "update this package here to a new version"。 ..

npm shrinkwrap is a analog of composer.lock file. It will generate a npm-shrinkwrap.json, that have all deps with version in it, so you can use it to deploy to production env. Also you can try a various libs from npm to lock versions or search for updates 其中 packages.json.