Javascript Node.js:错误:使用GM模块时生成eNONT
尽管这个问题已经被问了好几次,但现有的答案都没有帮到我。使用MEAN环境(在Mac OSX上),我安装graphicsmagick时使用了:Javascript Node.js:错误:使用GM模块时生成eNONT,javascript,node.js,graphicsmagick,Javascript,Node.js,Graphicsmagick,尽管这个问题已经被问了好几次,但现有的答案都没有帮到我。使用MEAN环境(在Mac OSX上),我安装graphicsmagick时使用了: sudo npm install gm 每当运行以下脚本时,都会出现以下错误: { [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' } 这是我正在尝试运行的一段代码: var gm = require('gm'); //var gm = requir
sudo npm install gm
每当运行以下脚本时,都会出现以下错误:
{ [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' }
这是我正在尝试运行的一段代码:
var gm = require('gm');
//var gm = require('gm').subClass({ imageMagick: true }); //tried this one too
gm('./project/public/images/webshots/test1.jpg')
.resize(320, 240)
.write('./project/public/images/webshots/test2.jpg', function (err) {
if (!err) console.log('done');
if(err){
console.log(err);
}
});
以下人员授予了相应的写入权限:
sudo chmod -R 777 ./project/public/images/webshots
我甚至尝试了几种源/目标路径组合。我还遗漏了什么?gm模块找不到gm可执行文件的路径。因此,听起来您的
$PATH
需要更新,以包括安装graphicsmagick的路径。它正在寻找gm(graphicsmagick)二进制文件
通过PPA安装GraphicsMagick:
sudo add-apt-repository ppa:dhor/myway
sudo apt-get update
sudo apt-get install graphicsmagick
这对我很有帮助这帮助我解决了这个问题
gm('./project/public/images/webshots/test1.jpg')
.options({imageMagick: true})
.resize(320, 240)
.write('./project/public/images/webshots/test2.jpg', function (err) {
if (!err) console.log('done');
if(err){
console.log(err);
}
});
注意:应安装imageMagick您是否按照
gm
中的说明首先安装imageMagick/graphicsmagick?如果是这样,您是否能够从shell提示符手动执行imagemagick/graphicsmagick?是的,两个都已安装。对不起,请问我如何手动执行它?对于graphicsmagick,它只是gm
。不,我不能手动启动它。获取错误:没有这样的命令。也许我需要设置路径?我采取了以下步骤:重新安装gm(sudo npm install gm)并将/node_modules/gm添加到我的路径信息(vim/etc/PATH)中,但我仍然无法手动运行gm(与以前相同的错误),也无法运行代码(相同的错误)。首先,你不应该使用sudo
在本地安装,只需使用npm安装gm
。另一个问题是,我指的不是gm
模块在PATH
中,而是gm
二进制文件的实际路径(这与npm中的gm
模块完全不同)。gm
二进制文件是您从自制软件、macports安装的文件,例如,也可以从中编译和安装。gm
npm模块调用gm
二进制文件,因此在二进制文件正确安装之前,该模块将无法工作。感谢您的重要说明!我在这里完全迷路了,因为我以为我在处理一个“普通”节点模块。现在我意识到我(也)在处理必须单独安装的实际二进制文件(不使用npm!),我现在就可以工作了。再次感谢,很抱歉搞砸了。但是如何安装这些二进制文件呢?