Webpack配置Vue热更新
需要的包
cnpm i vue webpack webpack-cli webpack-dev-server html-webpack-plugin clean-webpack-plugin style-loader css-loader vue-loader vue-style-loader vue-template-compiler -D
npm i vue webpack webpack-cli webpack-dev-server html-webpack-plugin clean-webpack-plugin style-loader css-loader vue-loader vue-style-loader vue-template-compiler -D
Webpack.config.js配置
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const {CleanWebpackPlugin} = require('clean-webpack-plugin');
const VueLoaderPlugin=require('vue-loader/lib/plugin');
module.exports = {
entry: {
app: './src/index.js'
},
devtool: 'inline-source-map',
devServer: {
contentBase: './dist',
hot: true,
port: 8686,
historyApiFallback: true
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
template: './src/index.template.html'
}),
new webpack.HotModuleReplacementPlugin(),
new VueLoaderPlugin()
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
test: /\.vue$/,
exclude: /node_modules/,
loader: 'vue-loader'
},
{
test: /\.css$/,
loader: ['vue-style-loader', 'style-loader', 'css-loader']
}
]
}
};
index.js
import Vue from 'vue';
import App from './app.vue';
import './assets/index.css';
Vue.config.productionTip = false;
new Vue({
render: h => h(App)
}).$mount('#root');
app.vue
<template>
<div id="app">
Vue
</div>
</template>
<script>
export default {
name: "app"
}
</script>
<style scoped>
#app {
height: 100vh;
background-color: antiquewhite;
}
</style>