如何设置npm不安装全局安装的软件包?

时间:2016-04-25 03:12:16

标签: npm

我的项目引用了mochaphantomjs等,这需要花费大量时间才能在npm install期间下载。这在我的本地机器上不是问题,因为我只下载一次并且可以永久使用它们,除非我决定手动升级它们。

但是,在我的CI计算机中,每次我jenkinsgit commit进行测试和部署时,我的git push服务器都需要下载它们。

那么我可以通过设置npm来从远程服务器下载这些慢速包来加速这个过程吗?相反,如果我全局安装它们,请从本地缓存安装它们,还是不安装它们?

任何人都知道如何配置?

2 个答案:

答案 0 :(得分:1)

found some packages可能会有所帮助

    仅当npm install的{​​{1}}和package.json的内容发生变化时,
  • npm-install-changed才会运行devDependencies,请注意它假定为dependencies如果您的CI服务器始终从头开始,则会持续存在于不同的构建中,这可能没有帮助
  • npm-install-cache运行node_modules然后将您当前的npm install文件夹复制到node_modules中的某个位置),如果再次调用该脚本,它将验证任何更改to package.json (而不是对\tmpdevDependencies进行的更改),如果它没有更改,那么它将复制存储在dependencies中的node_modules文件夹},我看到的唯一限制是它不是跨平台的,并且缓存文件夹是\tmp,它在重新启动时被删除(或者甚至可能在进程完成时被删除!)

第二个包可能无法正常工作,但它似乎是一个好的起点:)

答案 1 :(得分:0)

您可以在package.json中的devDependencies中指定要在本地使用的所有软件包,然后运行npm install -d将安装这些软件包而不是主要依赖项。