最近在使用node-canvas做一个nodejs应用。开发阶段在src里面直接跑是没问题的,但build 时报错。
这是因为node-canvas是打包成.node文件提供给外部用的,不是一个js文件。如果想打包就需要增加一个loader
,如下:
记得先安装
npm i node-loader -D
加了node-loader以后可以正常build了,dist目录也多了一个.node文件。
但是到dist目录去执行时,会报错。
node ./index.js
报错信息:
Error:node-loader
Error:The specified module could not be found.
这是因为node-canvas里这个.node文件也依赖了其他文件(dll等),可以到node_modules下看一下就知道了。 把这个目录下的文件全部复制到dist目录。在写构建脚本时,这一步可以通过脚本实现。
提示:上图中的obj文件夹不需要复制
在到dist中运行一下就成功了。
在网上搜了一下,没有人说这个事,自己摸索的。抛砖引玉,有没有更好的办法?比如根据依赖图自动复制需要的dll,希望知道的在下面留言指教一下。