我正在尝试使用Sharp将GIF转换为PNG的esbuild
插件,但我得到以下错误:
<标题>gif-to-png.ts h1> 的代码仍在进行中,但我必须以某种方式在npx esbuild .srcutilsgif-to-png。Ts——platform=node——bundlenode_modules/sharp/lib/utility.js:7:22:错误:没有为".node"配置加载器;文件:/构建/发布/sharp.node node_modules/锋利│const sharp = require('../build/Release/sharp.node');╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
setup
中调用gifToPng
函数,因此它将所有.gif
文件转换为.png
。
如何解决.node
加载器问题?
编辑:原来,ESBuild还不支持.node
->https://github.com/evanw/esbuild/issues/1051
我也有类似的问题。我将这一行添加到我的构建配置对象中。可能更好的解释在文档中:https://esbuild.github.io/content-types/#file
build({
loader: { ".node": "file" },
...
})
根据esBuild https://esbuild.github.io/getting-started/#bundling-for-node
你可能也不想把你的依赖与esbuild捆绑在一起。在绑定时,esbuild不支持许多特定于节点的特性,例如
__dirname
、import.meta.url
、fs.readFileSync
和*.node
本机二进制模块。你可以通过将packages设置为external来排除bundle中的所有依赖项。
我通过添加
esbuild app.jsx --bundle --platform=node --packages=external
--packages=external
解决了同样的问题build({
loader: { "packages": "external" },
...
})