在正确的目录中将travis上的全局node_modules缓存

时间:2015-07-15 01:19:50

标签: gruntjs travis-ci

我在travis上使用grunt-cli来执行测试。它在安装步骤中全局安装,如下所示:

install:
  # amongst other install steps
  - npm list -g grunt-cli --depth=0 || npm install -g grunt-cli

然后我按照这样的方式缓存它,this question(顺便提一句,我回答):

cache:
  directories:
    - $(npm config get prefix)/bin/grunt-cli

但是,在下一个版本中,我看到了这一点:tar: /home/travis/.nvm/v0.10.36/bin/grunt-cli: Not found in archive。原因是,grunt-cli被缓存在.nvm/v0.10.40/中,因为它正在测试哪个版本的节点(大多数情况下默认情况下 - 我们只在配置中设置了node_js: 0.10,所以它安装了最新版本)。但显然travis节点的起始版本是0.10.36。显然,有很多方法,但这似乎是非常天真的行为。我的意思是,travis首先执行缓存,然后nvm安装正确版本的节点,使初始缓存无效。也许他们只是没有考虑缓存全局node_modules。配置中是否有我缺少的东西?或者我应该npm config set prefix到一个与版本无关的路径并将其添加到我的$PATH? (或者,使用完全限定版本 - major.minor.patch - 并对缓存目录进行硬编码?)

0 个答案:

没有答案