【问题标题】:cap "no such file or directory /usr/bin/env npm" although it is really here上限“没有这样的文件或目录/usr/bin/env npm”虽然它真的在这里
【发布时间】:2014-12-08 11:29:45
【问题描述】:

运行任务返回时我遇到了这个奇怪的cap 错误:

INFO[f0017d58] Running /usr/bin/env npm install --silent on default
DEBUG[f0017d58] Command: cd /var/www/myapp/releases/20141208112620 && /usr/bin/env npm       install --silent
DEBUG[f0017d58]     /usr/bin/env:
DEBUG[f0017d58]     npm
DEBUG[f0017d58]     : No such file or directory
DEBUG[f0017d58]
cap aborted!

当我通过ssh 登录时,这工作得很好(使用相同的用户):

vagrant@localhost:~$ cd /var/www/myapp/releases/20141208112620 && /usr/bin/env npm    install --silent
grunt-contrib-uglify@0.3.3 node_modules/grunt-contrib-uglify
├── grunt-lib-contrib@0.6.1 (zlib-browserify@0.0.1)
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
└── uglify-js@2.4.15 (uglify-to-browserify@1.0.2, async@0.2.10, optimist@0.3.7, source-map@0.1.34)

所以有些奇怪的东西我无法识别。

感谢您的帮助。


编辑:是的,我发现了实际问题的根源。 当我登录(通过vagrant ssh)时,我得到的环境与使用cap 得到的环境不同。 基本上我可以在登录时从 CLI 调用 npm,这将在 /usr/local/node/node-default/bin/npm 中找到它,而 cap 不能,因为这些都不在它使用的路径中(或类似的东西)

【问题讨论】:

    标签: npm capistrano


    【解决方案1】:

    下面的修复解决了这个问题

    部署.rb

    set :nvm_node, 'v8.9.1'
    
    set :nvm_map_bins, %w{node npm}
    

    宝石文件

    gem 'capistrano-nvm'
    

    Capfile

    require 'capistrano/nvm'
    

    【讨论】:

      猜你喜欢
      • 2016-02-20
      • 1970-01-01
      • 2011-04-08
      • 2013-03-11
      • 2019-12-11
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多