aws + serverless + webpack => cannot find module xxx in prod
我想创建一个程序包以使用无服务器和webpack部署在AWS上。
在
文件夹结构为:
1 2 3 4 5 6 | |- serverless.yml |- webpack.config.js |- package.json |- src \\ - file1.js | - file2.js |
从serverless.yml中提取
1 2 3 4 5 | functions: function1: handler: src/file1.f1 function2: handler: src/file2.f2 |
从webpack.congfig.js中提取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | module.exports = { entry: { file1: './src/file1.js', file2: './src/file2.js', }, target: 'node', output: { libraryTarget: 'commonjs', path: path.join(__dirname, '.webpack'), filename: '[name].js', }, module: { loaders: [ { test: /\\.json$/, loaders: ['json-loader'], }, ], }, }; |
进行
1 2 3 4 5 6 7 8 9 | { "errorMessage":"Cannot find module '/var/task/src/file1'", "errorType":"Error", "stackTrace": [ "Function.Module._load (module.js:276:25)", "Module.require (module.js:353:17)", "require (internal/module.js:12:17)" ] } |
你能告诉我我在做什么错吗?
鉴于我是无服务器的新手,您能为我推荐一些有关代码和开发组织的"更好的实践"吗? (强加了无服务器和nodejs,webpack和其他都没有)
我建议使用无服务器Webpack插件。在看不到整个
Serverless Stack详细介绍了如何使用
检查节点版本
node --version
Run
serverless plugin install --name serverless-webpack
该错误的一种可能解决方案是从
这种方法的副作用是,当使用
可能还有其他副作用,没有证据就是没有证据! :)
因此,我仍在寻找没有副作用的解决方案。