首页 > 解决方案 > 错误:配置对象无效。Webpack 已使用与 API 模式不匹配的配置对象进行初始化

问题描述

当我尝试执行“npm run dev”时,我遇到了这个奇怪的错误。首先,我克隆了一个 repo,然后更改为我执行“npm install”的项目文件夹。

完成后,我尝试了“npm run dev”,但它给了我一个很长的错误:

无效的配置对象。Webpack 已使用与 API 模式不匹配的配置对象进行初始化。- configuration[0].mode 应该是以下之一:“开发”| “生产” | “无” -> 启用生产优化或开发提示。- configuration[1].mode 应该是以下之一:“开发”| “生产” | “无” -> 启用生产优化或开发提示。

我的 webpack.config.js 文件:

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

const serverConfig = {
    mode: process.env.NODE_ENV || 'development',
    entry: './src/server/server.ts',
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: 'ts-loader',
                exclude: /node_modules/,
                options: {
                    configFile: 'tsconfig.server.json'
                }
            }
        ]
    },
    resolve: {
        extensions: ['.tsx', '.ts', '.js']
    },
    output: {
        filename: 'server.js',
        path: path.resolve(__dirname, 'dist')
    },
    target: 'node',
    node: {
        __dirname: false
    },
    externals: [nodeExternals()]
};

const clientConfig = {
    mode: process.env.NODE_ENV || 'development',
    entry: './src/client/index.tsx',
    devtool: 'inline-source-map',
    module: {
      rules: [
        {
            test: /\.tsx?$/,
            loader: 'ts-loader',
            exclude: /node_modules/,
            options: {
                configFile: 'tsconfig.client.json'
            }
        },
        {
            test: /\.scss$/,
            use: [
                'style-loader',
                'css-loader',
                'sass-loader',
            ]
        }
      ]
    },
    resolve: {
        extensions: ['.tsx', '.ts', '.js', '.css', '.scss']
    },
    output: {
        filename: 'app.js',
        path: path.resolve(__dirname, 'public/js')
    }
};

module.exports = [serverConfig, clientConfig];

标签: node.jstypescriptnpmwebpack

解决方案


推荐阅读