gpt4 book ai didi

webpack-4 - 将 webpack 配置导出为函数失败

转载 作者:行者123 更新时间:2023-12-02 00:29:08 27 4
gpt4 key购买 nike

我正在尝试在我的 webpack 配置中处理开发和生产环境变量(请参阅 https://webpack.js.org/guides/production/ ),但它失败了

WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration should be an object.

包.json

        {
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "./node_modules/.bin/webpack",
"start": "npm run build && node server.js"
},
"devDependencies": {
//...
"webpack": "^4.20.2",
"webpack-cli": "^3.1.2",
"webpack-dev-middleware": "^3.4.0",
"webpack-hot-middleware": "^2.24.2"
}
}

webpack.config.js

const path = require('path'),
webpack = require('webpack'),
HtmlWebpackPlugin = require('html-webpack-plugin');

let config = {
entry: {
app: [
'./src/app/App.tsx', 'webpack-hot-middleware/client'
],
vendor: ['react', 'react-dom']
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'js/[name].bundle.js'
},
// ...
}

此导出按预期工作,没有错误或警告

module.exports = config; // everything is fine

但这失败了

module.exports = function(env, argv) { // this errors

return config;
};

这里有一个类似但未回答的问题:webpack base config as a function doesn't work

这是一个非常神秘的行为,如果有人能提供帮助,我们将不胜感激!

最佳答案

嗯,它正在工作。我没有注意到错误发生在我的代码的完全不同的地方。

我正在用 webpack 和 express 做一个关于 HMR 的教程。导致问题的是快速设置中的这行代码:

服务器.js

const webpackConfig = require('./webpack.config');
const compiler = webpack(webpackConfig);
//...
app.use(
require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: webpackConfig.output.publicPath
})
);

webpackConfig 只是获取一个函数而没有被调用,所以它没有返回一个对象。因此,只需添加括号即可使其正常工作。

const webpackConfig = require('./webpack.config')();
//..

关于webpack-4 - 将 webpack 配置导出为函数失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52594167/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com