首页 > 解决方案 > Serverless-webpack 部署脚本在 Webpack 4.8 中“挂起”,而在 3.12 中运行正常。

问题描述

我正在使用无服务器和无服务器 webpack。webpack配置非常简单:

const path = require('path');
const nodeExternals = require('webpack-node-externals');

module.exports = {
    entry: {
        lambda: './lambda.js',
    },
    output: {
        libraryTarget: 'commonjs',
        path: path.join(__dirname, '.webpack'),
        filename: '[name].js',
    },
    target: 'node',
    externals: [nodeExternals()],
    module: {
        rules: [{
            test: /\.js$/,
            loader: 'babel-loader',
            include: __dirname,
            exclude: /node_modules/,
        }, {
            test: /\.json$/,
            loader: 'json-loader',
        }],
    },
    stats: "verbose",
};

无服务器.yml:

plugins:
    - serverless-webpack
    - serverless-secrets-plugin
    - serverless-plugin-split-stacks
    - serverless-offline  

custom:
    webpack:
        webpackConfig: ./webpack.config.js
    stage: ${opt:stage, self:provider.stage}

provider:
    name: aws
    runtime: nodejs8.10

functions:
    lambdaFn:
        handler: lambda.fn
        events:
            - http: GET /foo

使用 webpack 8.4 版部署时,控制台输出绝对清晰(即使verbose开启),并且节点进程消耗 0% CPU:

node ./node_modules/.bin/serverless offline -p 3001 -s local
Serverless: Bundling with Webpack... 

将 webpack 降级到 3.12(最新的 3.* 版本)时,构建运行成功。

至少,我该如何调试呢?不幸的是,我在输出中没有看到任何错误或提示。

标签: javascriptnode.jswebpackserverless-frameworkserverless

解决方案


推荐阅读