node.js通过FastCGI/PHP:错误:找不到模块';更少';


node.js through FastCGI/PHP: Error: Cannot find module 'less'

我在/usr/local/bin/node下从源代码(./configure && make && make install)安装了node.js。之后,我在/usr/local/lib/node_modules/less/下全局安装了带有npm -g install less的less编译器。因此node和less位于它们的默认路径下。

我使用kriswallsmith/assetic通过PHP编译我的less文件,因此我将路径调整为/usr/local/bin/node。每次我运行脚本时,我都会得到错误Error: Cannot find module 'less',我在命令行中也有同样的行为。但我找到了一个解决方案(ln -s /usr/local/lib/node_modules/ ~/.node_libraries)来解决这个问题,之后它在命令行上解决了。通过PHP,问题仍然存在——PHP通过FastCGI运行,与我在命令行中使用的用户相同。

我如何通过FastCGI/PHP来解决这个问题?

assetic的LessFilter的构造函数接受一个nodePaths数组。添加/usr/local/lib/node_modules/作为nodePath解决了这个问题。