如何在Travis CI上缓存全局NPM包?

13

本地安装的软件包会被缓存:

# .travis.yml
...
cache:
  directories:
  - node_modules
...

但是我该如何对全局安装的包 ($ npm install -g <...>) 进行缓存以加快我的构建速度呢?

1个回答

12

这是我完成它的方式:

cache:
  directories:
    # Replace "grunt-cli" with whatever global binary you're using
    - $(npm config get prefix)/bin/grunt-cli

编辑:

正如评论中指出的那样,$(npm config get prefix)/bin 包含指向其他代码的符号链接。这未经测试,但可能起作用:$(npm config get prefix)/lib/node_modules。这应该缓存 所有 全局安装的模块。


3
为了节省时间,我也在避免重新安装: npm list -g grunt-cli --depth=0 || npm install -g grunt-cli - Jace Browning
是啊,我也这么觉得。如果Travis可以跳过缓存的安装就好了。可惜不行。 - tandrewnichols
1
$(npm config get prefix)/bin/grunt-cli 不就是一个符号链接吗?缓存它有什么意义呢?我尝试将 $(npm config get prefix) 添加到缓存目录中,但 Travis 在后续构建中仍然无法获取缓存。 - stefanjunker
感谢@stefanjunker,是的,那样说没有太多意义。我会更新的。 - tandrewnichols

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接