执行build命令未生成本地服务器的原因及生产环境行为咨询
问题解答
你的配置与脚本信息
npm 脚本
"dev": "webpack serve --hot --mode development --config ./configs/webpack.config.ts", "build": "webpack --mode production --config ./configs/webpack.config.ts"
Webpack 配置代码
module.exports = (env: Server, argv: Imodul): Iwebpack => { let { mode } = argv; const isProduction: boolean = mode === 'production'; const isDevelopment: boolean = mode === 'development'; return { entry: { [MAIN]: ['./src/index.js'], }, devServer: { port: 3000, historyApiFallback: true, }, }; };
为什么执行build命令不会创建本地服务器?
webpack核心命令的作用就是编译打包代码生成静态文件,本身没有启动服务器的逻辑。只有webpack serve这个专门的开发命令,才会读取配置里的devServer字段,启动本地开发服务器并提供热更新、路由 fallback 等开发特性。- 你配置中的
devServer字段只对webpack serve生效,webpack(也就是build命令使用的核心命令)会直接忽略这个配置——生产构建只需要输出产物,不需要运行临时服务器。
真实服务器上执行构建的行为是否一致?
- 完全一致。在真实服务器上运行
build命令,同样只会生成生产环境的静态构建产物,不会启动任何本地服务器。 - 生产环境的服务是靠Nginx、Apache这类专业web服务器,或者Node.js的Express/Koa等框架来托管你build出来的静态文件的。
devServer只是开发阶段的临时工具,生产环境根本用不上它。
内容的提问来源于stack exchange,提问作者Екатерина
相关产品推荐
相关产品推荐

