Ubuntu Grunt在本地工作,但不是通过SSH

Ubuntu Grunt在本地工作,但不是通过SSH,ubuntu,jenkins,gruntjs,npm,sysadmin,Ubuntu,Jenkins,Gruntjs,Npm,Sysadmin,我有一个Jenkins服务器通过SSH向另一台机器发送命令,以便部署一个网站,作为这个过程的一部分,我使用Grunt构建SASS。如果我登录到服务器并运行“grunt build dev”,它就可以正常工作,但是如果我使用下面的命令通过SSH将命令发送到同一服务器 ssh myserver.org 'cd /var/www/myserver.org/htdocs/sites/all/themes/myserver; grunt build-dev' 我得到一个错误如下 npm WARN pac

我有一个Jenkins服务器通过SSH向另一台机器发送命令,以便部署一个网站,作为这个过程的一部分,我使用Grunt构建SASS。如果我登录到服务器并运行“grunt build dev”,它就可以正常工作,但是如果我使用下面的命令通过SSH将命令发送到同一服务器

ssh myserver.org 'cd /var/www/myserver.org/htdocs/sites/all/themes/myserver; grunt build-dev'
我得到一个错误如下

npm WARN package.json server@1.0.0 No README data
Running "sass:dev" (sass) task
Warning: 
You need to have Ruby and Sass installed and in your PATH for this task to work.
More info: https://github.com/gruntjs/grunt-contrib-sass
 Use --force to continue.

Aborted due to warnings.

我使用npm install为Grunt添加依赖项,但运气不好,我还尝试将npm install添加到SSH命令中,该命令发送到服务器,服务器会按照预期安装依赖项。

正如jim mcnamara在回答我的问题时指出的,问题确实是PATH变量的问题。在他的帮助下,我设法解决了这个问题。我在SSH命令的开头添加了
source/etc/profile


或者,我也可以使用RVM全局安装Ruby/Sass,而不是本地安装SSH。

通常的原因是环境变量-PATH变量似乎不包含必要的项。ssh远程“echo$PATH”将帮助您启动。