四、 使用webpack-dev-server插件为项目配置提供web服务及实时刷新
关于webpack-dev-server,它主要提供两个功能:
1、为静态文件提供服务
2、自动刷新和热替换(HMR)
npm i webpack-dev-server --save-dev
在webpack.config.js中修改如下代码
先引入 const webpack = require(‘webpack’);
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css"
}),
new HtmlWebPackPlugin({
template: "./public/index.html",
filename: "./index.html"
}),
new CleanWebpackPlugin(),
new webpack.HotModuleReplacementPlugin() //引入热更新插件
],
devServer:{
host:'localhost', //服务器的ip地址
port:8080, //端口
open:true, //自动打开页面
hot:true //开启热更新
}
执行
webpack-dev-server如果浏览器自动打开http://localhost:8080/ 说明成功了
我们把package.json配置改一下
"scripts": {
"dev": "webpack-dev-server --mode development --open",
"build": "webpack --mode production"
},
执行 npm run dev,同样也可以自动打开http://localhost:8080/,不过此时npm run dev并没有生成dist目录了,这是因为devServer会将webpack构建出的文件保存到内存里,不需要打包生成就能预览。
更多文档:https://webpack.docschina.org/configuration/dev-server/
五、安装vue相关模块建立 vue 项目
参考vue-cli3.0建立vue项目
npm i vue vue-router vuex --save npm i vue-loader vue-template-compiler --save-devwebpack.config.js增加:
// 解析vue
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {}
}
}
参考vue-cli,新建项目一些文件如图所示
六、项目配置优化
1、不同环境下的配置和优化devtool中的source-map
config.devtool = '#source-map';
2、提取公共依赖
//生产环境
if(isProd){
config.entry = {
app: path.join(__dirname,'src/main.js'),
vendor: ['vue']
}
config.output.filename = '[name].[chunkhash:8].js';
config.plugins.push(
new webpack.optimize.CommonsChunkPlugin({ //定义静态文件打包
name: 'vendor'
})
)
}
待续…
