如何在ES6中导入节点模块并传递子类参数?

8

在JS中,我需要在节点模块中使用gm(我想要与imageMagick一起使用而不是默认的graphicsMagick),同时传递这样一个参数:

 var gm = require('gm').subClass({ imageMagick: true });

我该如何用ES6实现这个功能?
import gm from "gm";
gm.subClass({ imageMagick: true });

代码无法运行,因为gm默认使用未安装的GraphicsMagick。


1
在你的 Node 示例中,你将 subClass 的返回值保存到一个变量中。在你的 ES6 代码中也是这样吗? - apsillers
你能详细说明一下“它不起作用”是什么意思吗? - Felix Kling
@FelixKling:它默认使用graphicsMagick,但它未安装,因此记录如下错误信息:[Error: Could not execute GraphicsMagick/ImageMagick: gm "convert" "-size" "640x360" "xc:#f9b005" "-fill" "#ffffff" "-pointsize" "140" "-draw" "gravity center text 0,0 \"img\"" "/tmp/img.jpg" this most likely means the gm/convert binaries can't be found] - r0bs
你是否尝试过使用subClass返回值,就像第一个例子中所做的那样? const im = gm.subClass({ imageMagick: true }); /* use I'm here */. - Felix Kling
@FelixKling 太棒了!可以用了!谢谢你! - r0bs
1个回答

10

来自@Felix Kling的回答:

import gm from "gm";
const im = gm.subClass({ imageMagick: true });

从现在开始使用im


我正在使用Typescript/webpack在AWS Lambda中使用gm。似乎会出现运行时错误:module initialization error: TypeError - 编译后的代码如下:const gm_1 = __webpack_require__(17); const IMAGEMAGICK = gm_1.default.subClass({ imageMagick: true });。非常奇怪,我将继续调查。 - Matt Rowles
移除 '.default.' 解决了上述问题...不过我不确定如何正确修复它。const IMAGEMAGICK = gm_1.subClass({ imageMagick: true }); - Matt Rowles
1
对于那些来得比较晚的人,这是解决上面评论中我的问题的方法:import * as GM from 'gm'; - Matt Rowles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接