要在我的 Mac 上从 PHP 运行 grunt 命令,我可以使用 putenv
告诉 PHP NodeJS 所在的位置和全局路径,这样我就可以运行 grunt 命令,例如:
putenv('PATH=' . getenv('PATH') . ':/usr/local/bin');
exec('grunt watch');
但是在 Windows 7 上,NodeJS 位于不同的位置...
我第一次尝试:
putenv('PATH=' . getenv('PATH') . ':C:\Program Files (x86)\nodejs');
这是 NodeJS 本身所在的位置,但这不起作用...
然后尝试:
putenv('PATH=' . getenv('PATH') . ':C:\Users\cameron.drysdale\AppData\Roaming\npm');
npm 所在的位置(我不知道为什么在 Windows 上它位于与 exe 不同的位置)。但这同样不起作用,我收到一条错误消息,指出 grunt 是一个未知命令。 grunt-cli 肯定是全局安装的!
对于 Windows 的路径应该是什么有什么想法吗?
最佳答案
解决方案是同时使用两者!
$putenv = putenv('PATH=' . getenv('PATH') . ';C:\Program Files (x86)\nodejs;C:\Users\cameron.drysdale\AppData\Roaming\npm');
并且还使用 ;
而不是 :
作为分隔符(正如 Pieter Hoste 评论的那样)
关于php - 在 Windows 上从 PHP 运行 Grunt 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29892890/