Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js:错误:使用GM模块时生成eNONT_Javascript_Node.js_Graphicsmagick - Fatal编程技术网

Javascript Node.js:错误:使用GM模块时生成eNONT

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

尽管这个问题已经被问了好几次,但现有的答案都没有帮到我。使用MEAN环境(在Mac OSX上),我安装graphicsmagick时使用了:

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!),我现在就可以工作了。再次感谢,很抱歉搞砸了。但是如何安装这些二进制文件呢?