3

我正在尝试将“express.js”脚本与 esbuild 捆绑使用

esbuild index.js --bundle --platform=node --outfile=server.js

作为 netlify/aws lambda 函数运行,似乎总是得到这个警告:

> node_modules/express/lib/view.js: warning: This call to "require" will not be bundled because the argument is not a string literal
    81 │     var fn = require(mod).__express
       ╵              ~~~~~~~

该功能似乎正在运行,但我想找出可能出了什么问题,我在任何地方都找不到任何在线提示?

4

1 回答 1

2

捆绑过程尝试生成包含所有代码的单个文件,但警告告诉您 express 包含一些无法捆绑到单个文件中的代码。我对 express 不熟悉,但显然这也是 express 和 Webpack 的问题(请参阅此问题以获取示例)。

假设您在运行代码时仍将文件夹保留在node_modules/express您的包旁边,您可以使用 esbuild 解决此问题,方法与 Webpack 解决方案的工作方式相同:将包标记express为外部。看起来像这样:

esbuild index.js --bundle --platform=node --outfile=server.js --external:express
于 2020-11-26T00:43:59.227 回答