webpack - 无服务器 webpack 不捆绑 handlers.js
问题描述
我是 webpack 和 serverless 的新手,所以如果这看起来微不足道,请原谅我。我从npm serverless-webpack复制了这些代码。
我尝试使用serverless webpack --out dist
,但我的命令行无法识别webpack
。如果我尝试这样做serverless deploy <opts> <opt>
,那么它会编译并捆绑到 .serverless 中,但缺少必要的 JS 文件。
webpack.config.js
var path = require('path');
var slsw = require('serverless-webpack');
var nodeExternals = require('webpack-node-externals');
module.exports = {
context: path.resolve(__dirname, './src'),
entry: slsw.lib.entries,
target: 'node',
externals: [nodeExternals()],
output: {
libraryTarget: 'commonjs',
path: path.resolve(__dirname, '.webpack'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.jsx$/,
loader: ["babel-loader"],
include: __dirname,
exclude: /node_modules/
}
]
}
};
无服务器.yml
service: hello-world
frameworkVersion: '>=1.2.0 <2.0.0'
provider:
name: aws
runtime: nodejs8.10
deploymentBucket:
name: test-bucket
plugin:
- serverless-webpack
- serverless-prune-plugin
custom:
prune:
automatic: true
number: 3
webpack: webpack.config.js
webpackIncludeModules:
packagePath: ./src/package.json
forceInclude:
- express
- body-parser
functions:
getHelloWorld:
handler: functions/test.hello
events:
- http:
path: test/hello
method: get
webpack: 4.22.0(全球)
serverless-webpack: 5.3.0(全球)
解决方案
首先,安装 webpack。
npm install --save-dev webpack
安装插件无服务器 webpack
npm install serverless-webpack --save-dev
将插件添加到 serverless.yml
service: hello-world plugins: - serverless-webpack custom: webpackIncludeModules: true
您的 package.json 将是:
"scripts": { "test-process": "mocha --require babel-core/register ./tests/unit.test.js", "deploy": "./node_modules/.bin/serverless remove --stage dev --region us-east-1 && ./node_modules/.bin/serverless deploy -v --stage dev --region us-east-1" }
然后,您可以使用以下命令进行部署:npm run deploy
我为您准备了一个带有 webpack4 和无服务器的基本示例 hello-world:
https://github.com/ns4lin4s/stackoverflow
不要忘记,在 apigateway 中添加响应 application/json:
让我知道如何工作..
推荐阅读
- r - 为什么在 rollapply 窗口中将值转换为字符串?
- azure - 如何为文档生成序列号?
- php - 获取 3 个模型之间的相关记录
- python-3.x - 如何从 PDF 嵌入 HTML 的 URL 下载 PDF 文件?
- javascript - Selenium Webdriver Javascript - 使用 sendKeys 键入法语
- html - div内图像的边距和垂直对齐
- heroku - 免费 Heroku Postgres 数据库的 4 小时停机时间是什么时候?
- python - 如何通过请求抓取具有不变 URL 的特定页面
- git - 如何使 GIT 本地匹配远程(好像刚刚克隆)?
- php - 为特定产品类别向 Woocommerce 产品添加自定义字段