创建目录,初始化package.json , 安装vue , 安装Webpack 和 Babel
# 新建目录,并且进入
mkdir vue-webpack && cd $_
# 创建 package.json
npm init -y
# 安装 vue 依赖
npm i vue
# 安装 webpack 和 webpack-cli 开发依赖
npm i webpack webpack-cli -D
# 安装 babel
npm i babel-loader @babel/core @babel/preset-env -D
# 安装 loader
npm i vue-loader vue-template-compiler -D
# 安装 html-webpack-plugin
npm i html-webpack-plugin -D
然后在 src 文件夹下新建 App.vue 和 index.js 两个文件,内容如下:
// app.js
import Vue from 'vue';
import App from './app.vue';
Vue.config.productionTip = false;
new Vue({
render: h => h(App)
}).$mount('#app');
<template>
<div id="app">
Hello Vue & Webpack
</div>
</template>
<script>
export default {};
</script>
然后创建一个 HTML 文件 index.html :
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>Webpack Vue Demo</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
最后配置 webpack.config.js ,内容如下:
const HtmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
resolve: {
alias: {
vue$: 'vue/dist/vue.esm.js'
},
extensions: ['*', '.js', '.vue', '.json']
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader'
}
},
{
test: /\.vue$/,
loader: 'vue-loader'
}
]
},
plugins: [
new VueLoaderPlugin(),
new HtmlWebpackPlugin({
template: './src/index.html',
filename: 'index.html'
})
]
};