如何最好地自动化部署依赖 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.
我习惯于根据 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.