【发布时间】:2015-07-11 23:35:32
【问题描述】:
我很确定我已经将问题追溯到 Node.js 没有看到 Sass,但我不知道为什么......
如果我使用笔记本电脑推送:
git push lamp somebranch:master,服务器远程检查它很好,运行npm install没有错误,并开始处理gruntfile,但随后以"remote: Warning: spawn ENOENT Use --force to continue."中止
但是,(在我像上面那样从笔记本电脑推送之后)我可以 ssh 进入,cd 进入我的 hooks 目录并运行 ./post-receive 并完成 "Done, without errors." 我还尝试在网站的根目录中运行 grunt,它也完成了错误。
对可能发生的事情有任何想法吗?我完全被难住了。我应该为钩子中的 sass gem 设置路径吗?我取消了我的 gruntfile 以在本地和服务器上使用相同的目标来排除 gruntfile。它在本地编译良好,在服务器上编译良好,但在使用git push lamp somebranch:master 时仅失败。
【问题讨论】:
-
好的,我有一些可靠的信息。我将
grunt --verbose --debug添加到我的钩子中,当推送到服务器时它在sass sass/main.scss css/main.css上失败。它从服务器中找到 sass 并执行。 -
呃。我已经追踪到路径问题,很可能(惊喜,惊喜......)我的 Ruby 设置。通过从 .bashrc 添加到 PATH,我得到了要更改的原始错误。现在我得到一个 Gem::LoadError 说明它找不到 sass。推送时,gem 路径有:
/home/(username)/.gem/ruby/2.2.0:/home/(username)/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0在较新的错误中。登录并工作,gem 路径为:/home/(username)/.rvm/gems/ruby-2.2.1和/home/(username)/.rvm/gems/ruby-2.2.1@global是否有一种简单的方法可以使用 Ruby 为非交互式 shell 设置路径?
标签: ruby node.js git sass grunt-contrib-sass