ESBuild 错误:没有为".node"文件配置加载程序:node_modules/sharp/build/Release/sharp.node



我正在尝试使用Sharp将GIF转换为PNG的esbuild插件,但我得到以下错误:

npx esbuild .srcutilsgif-to-png。Ts——platform=node——bundlenode_modules/sharp/lib/utility.js:7:22:错误:没有为".node&quot配置加载器;文件:/构建/发布/sharp.node node_modules/锋利│const sharp = require('../build/Release/sharp.node');╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<标题>gif-to-png.ts h1> 的代码仍在进行中,但我必须以某种方式在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不支持许多特定于节点的特性,例如__dirnameimport.meta.urlfs.readFileSync*.node本机二进制模块。你可以通过将packages设置为external来排除bundle中的所有依赖项。

esbuild app.jsx --bundle --platform=node --packages=external

我通过添加--packages=external 解决了同样的问题
build({    
loader: { "packages": "external" },
...
})

相关内容

  • 没有找到相关文章