Node.js ';npm install--only=dev';删除现有包
在处理节点项目时,我在使用npm分离应用程序安装和测试依赖项时遇到了问题。我使用的是节点版本8.1.2和npm版本5.0.3 为了详细说明,我使用docker为我的节点应用程序创建生产和测试映像,其思想是生产映像将只安装应用程序依赖项(例如aws sdk、xml builder)。我通过在production docker映像中运行Node.js ';npm install--only=dev';删除现有包,node.js,npm-install,Node.js,Npm Install,在处理节点项目时,我在使用npm分离应用程序安装和测试依赖项时遇到了问题。我使用的是节点版本8.1.2和npm版本5.0.3 为了详细说明,我使用docker为我的节点应用程序创建生产和测试映像,其思想是生产映像将只安装应用程序依赖项(例如aws sdk、xml builder)。我通过在production docker映像中运行npm install-q--only=prod来实现这一点 测试映像扩展了生产映像,并在其上安装测试依赖项(例如chai、mocha)。这是通过在测试docker映
npm install-q--only=prod
来实现这一点
测试映像扩展了生产映像,并在其上安装测试依赖项(例如chai、mocha)。这是通过在测试docker映像中运行npm install-q--only=dev
命令来实现的。本练习的目的是创建一个没有不必要的包的清洁生产映像
但是当我执行后一个npm命令(npm install-q--only=dev
)时,它会删除第一次安装时安装的软件包。我在另一个使用旧版本的npm和node的项目中也做了同样的事情,效果很好
最新版本的npm有什么变化吗?如果是这样的话,是否还有其他规定的方法可以达到同样的效果?这不是因为Node.js的新版本,而是因为捆绑在一起的npm的新版本(版本5) 在您的情况下,您可以执行以下操作之一:
- 首先在生产映像中执行
,然后在测试映像中执行npm install--only=prod
npm install
- 在第一次npm安装后删除package-lock.json
- 在每次npm安装中使用选项<代码>--无程序包锁
我刚刚发现这似乎是npm的问题。目前,我上面所写的变通方法应该可以奏效。谢谢!我会投赞成票,但我不能,因为我在这个社区没有足够的声誉@尼山特利维迪:我处理好了;)此问题已在npm 5.1.0中修复