无服务器 webpack 不捆绑 handlers.js
serverless webpack doesn't bundle handlers.js
我是 webpack 和无服务器的新手,如果这看起来微不足道,请原谅我。我从 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/
}
]
}
};
Serverless.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
安装插件serverless 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 运行 deploy
还有 mocha you can test your code before doing the deploy. For that, you will have that configure babel
我为您准备了一个使用 webpack4 和无服务器的基本示例 hello-world:
https://github.com/ns4lin4s/Whosebug
别忘了,在apigateway中添加响应application/json:
让我知道效果如何..
我是 webpack 和无服务器的新手,如果这看起来微不足道,请原谅我。我从 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/
}
]
}
};
Serverless.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
安装插件serverless 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 运行 deploy
还有 mocha you can test your code before doing the deploy. For that, you will have that configure babel
我为您准备了一个使用 webpack4 和无服务器的基本示例 hello-world:
https://github.com/ns4lin4s/Whosebug
别忘了,在apigateway中添加响应application/json:
让我知道效果如何..