错误的根本原因来自
formidable
superagent
是由于在netlify函数中使用webpack的babel transpile引起的。
具体来说
issue can be tracked here
if (global.GENTLY) require = GENTLY.hijack(require);
传输代码:
var require;if (global.GENTLY) require = GENTLY.hijack(!(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
因此:
-
Critical dependency
生成期间的警告
-
响应错误
Cannot find module.
解决方案:
使用
暂时的
解决此问题我们将为
global.GENTLY
所以webpack将值设置为
false
不去关注其他的事情。这条线被证实只作测试之用。
创建一个文件以保存调用
webpack.config.js
把项目的根源放进去。
webpack.config.js网站
var webpack = require('webpack')
module.exports = {
plugins: [
new webpack.DefinePlugin({ "global.GENTLY": false })
]
}
现在更改函数的build命令,将配置作为webpack的附加设置包括在内。
旧命令
netlify-lambda build <folder>
新命令
netlify-lambda build <folder> -c webpack.config.js
如果一切顺利,则不应在模块上出现警告或运行时故障。
注:
指挥部
netlify-lambda
是
Netlify Lambda CLI
用于帮助将功能打包以供netlify部署的工具。如果不使用CLI,那么可以通过将插件添加到webpack配置中来解决此问题。