php - 在 Windows 上从 PHP 运行 Grunt 命令

标签 php windows node.js

要在我的 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/

相关文章:

php - 如何使用在 docker compose 中设置的环境变量

node.js - 这些文件描述符有什么用?

php - 用于 PHP 应用程序的 cucumber

php - 如何在不使用 ajax 重新加载的情况下提交我的表单?

windows - ffmpeg 加速视频 - Windows

windows - EXE版本号——如何正确比较次要版本

javascript - 如何修复 Heroku 中的 window.open() 问题?

node.js - 我正在evennode上部署我的nodejs应用程序,但我收到此错误

php - 在 SQL 中第 n 次执行后,ajax 返回成功

c++ - 如何在 Windows 中的私有(private)管理池中设置线程优先级?