In a previous comment,我注意到当前接受的答案确实有效,但它具有产生需要手动终止的进程的副作用。从那以后,我找到了一种更规范的方式来启动浏览器打开操作,而无需使用单独的 webpack 插件。
也就是说,你确实需要安装一个更通用的 npm 包:open
然后在您的项目文件夹中创建一个名为server.js 的新文件。这是一个示例实现(注意它在 ES6 中):
'use strict';
const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const config = require('./webpack.config');
const open = require('open');
const port_number = 8080;
let target_entry = 'http://localhost:' + port_number + '/';
config.entry.unshift("webpack-dev-server/client?" + target_entry);
new WebpackDevServer(webpack(config), {contentBase: 'src', hot: true, stats: { colors: true }, publicPath: '/assets/'})
.listen(port_number, 'localhost' , (err) => {
if (err) {
console.log(err);
}
console.log('Listening at localhost:' + port_number );
console.log('Opening your system browser...');
open(target_entry);
});
注意这一行:
config.entry.unshift("webpack-dev-server/client?" + target_entry);
-- 意味着您可以从webpack.config.js 中删除对webpack-dev-server/client?... 的调用,因为此unshift 命令会将行插入config.entry...当您需要设置一个具有多个环境和不同入口点的应用程序。
最后,在package.json 中,start 命令应该是这样的:调用node 以运行server.js:
"scripts": {
"start": "node server.js",
//...
}