2016-04-25 185 views
0

我的项目参考文献mocha,phantomjs等,在npm install期间需要花费很多时间下载。这在我的本地机器中不是问题,因为我只下载它们一次,除非我决定手动升级它们,否则可以永久使用它们。如何设置npm不安装全局安装的软件包?

然而,在我CI机,我jenkins服务器需要每次我做了git commitgit push做的测试和部署时间下载。

所以我可以通过设置npm不要从远程服务器下载这些慢速软件包来加速该进程?相反,从本地缓存安装它们或不安装它们,如果我全球安装它们?

任何人都知道如何配置?

回答

0

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

+0

是的,我把它们放在'devDependencies'中。头疼的是'npm install'这些软件包非常慢,所以我希望我可以安装一次,然后我可以永远使用它们。 –

1

found some packages可能会有所帮助

  • npm-install-changed运行npm install只有package.jsondevDependenciesdependencies的内容发生了变化,请注意,它假定node_modules仍然存在跨不同的建造这可能不是,如果有帮助您的CI服务器始终从头开始
  • npm-install-cache运行npm install然后将您当前的node_modules文件夹(\tmp中的某处)复制,如果哟ü再次调用脚本将验证任何修改的package.json(而不是在devDependenciesdependencies进行变化的),如果它没有那么改变它会复制存储在\tmpnode_modules文件夹,我看到的唯一限制是它不是跨平台和缓存文件夹是\tmp这是在重新启动时删除(或者即使被处理完毕,也许!)

第二包可能无法工作,因为它是,但它似乎是一个好地方开始:)