【问题标题】:Grunt-contrib-sass or the sass gem is not working when using git push使用 git push 时 Grunt-contrib-sass 或 sass gem 不起作用
【发布时间】: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


【解决方案1】:

有些人可能想知道为什么我没有在本地编译并将 css 从开发框转储到 Web 根目录中……也许我应该这样做。不过,这一次,我真的很想从头到尾进行 Push-to-deploy、编译和所有操作。对于任何尝试相同事情并遇到相同问题的人,这应该会有所帮助。

首先,清理通过发行版的包管理器安装的任何 ruby​​ 和 sass 版本的系统可能不会有什么坏处。然后我用rvm implode 清理了之前修补的所有残余,并从.bashrc 等中删除了痕迹。接下来我运行\curl -sSL https://get.rvm.io | bash -s stable --ruby --auto-dotfiles 并按下ctrl-c 首先修复任何错误。一旦安装脚本满意,我就让它正常下载和安装。我不必使用rvm install n.n.nrvm use n.n.nrvm use n.n.n --default,因为无论如何我都希望使用 2.2.1,而且看起来还不错。在 rvm 设置好 ruby​​ 之后,我运行了gem install sass

现在,最终……使用 PermitUserEnvironment,就像这里提到的那样:How to use sshd-config permituserenvironment option 是要走的路。我看到这种方法存在安全问题,但这是唯一有效的方法,我不会尝试运行有限的 shell。在不使用登录 shell 时,SSH 不允许环境变量是正常行为。但是,我假设 git 挂钩可以完全访问用户的正常变量(使用 ruby​​ 路径等),并且该假设是不正确的。将PermitUserEnvironment yes 添加到服务器的/etc/ssh/sshd_config 或类似名称并重新启动ssh 守护进程。作为服务器上的用户,我运行env 并将其复制到.ssh/environment 并清理了不需要的内容。之后,我从开发箱中执行了我的git push,它找到并运行了 sass 编译器就好了。

【讨论】:

    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 2014-05-27
    • 2014-12-31
    • 2017-10-15
    • 2013-12-15
    • 2013-06-21
    • 2016-04-08
    • 2014-01-25
    相关资源
    最近更新 更多