【发布时间】:2013-09-19 13:50:00
【问题描述】:
我正在试用 JS 压缩库 UglifyJS2。我使用自制软件在我的 Mac 上安装了 node.js,然后通过 npm 安装了 uglifyjs。在 shell 中一切正常,在路径中找到节点,我手动将“uglifyjs”添加到路径中,因此只需键入“uglifyjs”即可找到它(它安装在此处:/usr/local/share/npm/lib /node_modules/uglify-js/bin/uglifyjs)。这是在“.bash_profile”中完成的。
所以,我可以在终端中正常运行一切。我现在想在 web 上下文中运行它,在一个 PHP 页面中,使用 php 的“exec”。但是,当我尝试这样做时,exec 返回状态代码“127”,我认为这意味着“找不到命令”。我也尝试调用上面的完整路径,但结果相同。我的 Web 服务器正在以与我在 shell 中使用的用户相同的用户身份运行。
uglifyjs程序是这样启动的,可能是这个问题?
#! /usr/bin/env node
// -*- js -*-
...
您知道有什么方法可以做到这一点吗? 谢谢
【问题讨论】:
-
如果您使用完整路径 (
/usr/local/share/npm/lib/node_modules/uglify-js/bin/uglifyjs) 运行exec(),它会起作用吗? -
我也想做你想做的事(通过 PHP 在 NodeJS 上使用 uglify)。我尝试使用 packer/uglify 使代码更难阅读,但是,在运行 eval / JSbeautifier 之后,我发现代码仍然可以“恢复”到足以用于重新设计或研究目的......
-
如果你想在 PHP 上运行压缩脚本,你可以试试 munee
-
另外,如果你运行
exec('echo $PATH');,你会得到你期望的输出吗? -
先尝试在已知可行的命令/可执行脚本上使用 exec,然后使用您的 nodejs 应用程序,检查权限和模式...
标签: php node.js shell uglifyjs