我已经使用以下命令安装了mjml cli(如mjml文档中所述):
npm install mjml --save
现在如果我在命令行中执行了node_modules/.bin/mjml
,它将成功运行。
问题是,当我在php中使用symfony进程组件时,出现以下错误(即使它是正确的路径):
The command "/Users/qoraiche/Documents/my-app/node_modules/.bin/mjml" failed. Exit Code: 127(Command not found) Working directory: /Users/qoraicheOS/Documents/my-app/public Output: ================ Error Output: ================ env: node: No such file or directory
Symfony流程代码:
$process = new Process(base_path('node_modules/.bin/mjml'));
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
通过这种方式,我也已经在全球范围内安装了mjml,并且没有运气尝试它。
答案 0 :(得分:0)
从Symfony Process()
调用MJML二进制文件时,请尝试提供node.js的完整路径。
$process = new Process('/your/path/to/node ' . base_path('node_modules/.bin/mjml'));
我在自己的应用中使用此方法。当然,您需要提供输入和输出文件才能实际转译任何东西。