【问题标题】:Bundling expressjs with esbuild gives missing view.js warning将 expressjs 与 esbuild 捆绑会导致缺少 view.js 警告
【发布时间】:2020-11-25 17:20:04
【问题描述】:

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

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
       ╵              ~~~~~~~

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

【问题讨论】:

    标签: node.js express bundle esbuild


    【解决方案1】:

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

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

    esbuild index.js --bundle --platform=node --outfile=server.js --external:express
    

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 2020-02-08
      • 2018-06-08
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      相关资源
      最近更新 更多