node-canvas构建时遇到的问题

504 阅读1分钟

最近在使用node-canvas做一个nodejs应用。开发阶段在src里面直接跑是没问题的,但build 时报错。

image.png

这是因为node-canvas是打包成.node文件提供给外部用的,不是一个js文件。如果想打包就需要增加一个loader,如下:

image.png

记得先安装

npm i node-loader -D

加了node-loader以后可以正常build了,dist目录也多了一个.node文件。

image.png

但是到dist目录去执行时,会报错。

node ./index.js

报错信息:

Error:node-loader
Error:The specified module could not be found.

image.png

这是因为node-canvas里这个.node文件也依赖了其他文件(dll等),可以到node_modules下看一下就知道了。 把这个目录下的文件全部复制到dist目录。在写构建脚本时,这一步可以通过脚本实现。

image.png

提示:上图中的obj文件夹不需要复制

在到dist中运行一下就成功了。

image.png

在网上搜了一下,没有人说这个事,自己摸索的。抛砖引玉,有没有更好的办法?比如根据依赖图自动复制需要的dll,希望知道的在下面留言指教一下。