我曾经根据Composer(PHP的NPM cousing)部署代码,这些代码包含体育.json
和.lock
文件。第一个描述了包和版本约束,第二个列出了安装的内容。总是有一个锁定文件,你运行composer install
你确定收到同一套包裹;运行composer update
将重新读取json文件,安装新版本并更新锁定文件。
这对于生产部署来说非常棒,因为您不需要检查您的版本控制系统的依赖关系,并且您确保在生产环境中拥有完全相同的依赖关系集。发展。
我的问题是:如何最好地自动部署与NPM相关的代码?是否有可能实现类似于Composer的方法?我注意到npm install
仅安装package.json
文件中首次提供的内容。在第一次运行之后,即如果您更改了版本约束,则必须手动npm update
该程序包 - 这会使自动部署无效,因为无法检入版本控制"更新此打包到新版本" ...
答案 0 :(得分:0)
npm shrinkwrap是composer.lock文件的模拟。它将生成一个npm-shrinkwrap.json,其中包含所有带有版本的deps,因此您可以使用它来部署到生产环境。此外,您可以尝试从npm到lock版本的各种库,或者在不更改packages.json的情况下搜索updates。