Webpack 5多入口对象语法配置报错:不允许非字符串入口值求助
Webpack多入口配置错误排查与修复
错误原因
你在package.json的scripts里给webpack命令追加了.,这个参数会强制覆盖webpack.config.js中的entry配置,让Webpack把当前目录当作入口文件处理。由于目录无法直接作为入口模块,因此触发了API schema校验错误。
看你的scripts配置:
"start": "start node .\\server\\server.js && webpack-dev-server .", "build": "webpack .",
这里的.就是问题根源。
修复步骤
- 移除命令行参数中的
.
修改package.json的scripts,去掉webpack命令后多余的.:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "start node .\\server\\server.js && webpack-dev-server", "build": "webpack", "ver": "webpack --version" }
修改后Webpack会正确读取配置文件里的entry对象,不再被命令行参数覆盖。
- 优化output文件名(建议)
当前output.filename设置为固定的index_bundle.js,多个入口打包时会互相覆盖,建议使用占位符生成对应入口的文件:
output: { path: path.resolve(__dirname, './dist'), filename: '[name].bundle.js', // [name]会替换为entry中的key值(chunkone/chunktwo) clean: true // 可选,每次构建自动清空dist目录 },
这样每个入口会生成独立的打包文件,配合HtmlWebpackPlugin的chunks配置能正确关联到对应的HTML文件。
验证修复
修改后执行npm run build或npm run start,Webpack会正常加载多入口配置,不再触发schema错误,同时生成正确的打包产物。
内容的提问来源于stack exchange,提问作者eshayne
相关产品推荐
相关产品推荐

