目录

上节: 编写一个plugin

本节开始用之前介绍的知识来搭建个vue开发环境,其实如果把基础篇的那些内容掌握,配合文档,完全可以自己搭建出来。

开始

新建一个空文件夹,并在文件夹下新建如下基本文件:

.gitignore:

node_modulesdist.idea.vscode

index.html:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Webpack</title></head><body><div id="root"></div></body></html>

package.json:

{  "name": "webpack-train",  "version": "1.0.0",  "description": "webpack4",  "main": "index.js",  "scripts": {    "dev": "webpack-dev-server"  },  "keywords": ["webpack4"],  "author": "Madao",  "license": "ISC"}

然后新建src目录,并在src下新建main.js(入口)和App.vue(根组件):

src/main.js:

import Vue from 'vue';import App from './App.vue';new Vue({  el: '#root',  render: h => h(App)});

src/App.vue:

<template>  <div>    <h1>hello {{msg}}</h1>  </div></template><script>  export default {    name: 'App',    data() {      return {        msg: 'webpack'      }    }  }</script>

在根目录下新建webpack.config.js:

const HTMLPlugin = require('html-webpack-plugin');const VueLoaderPlugin = require('vue-loader/lib/plugin');module.exports = {  mode: 'development',  entry: './src/main.js',    // 起node服务  devServer: {    port: 4200  },    module: {    rules: [{      // 识别.vue文件      test: /\.vue$/,      loader: 'vue-loader',    }, {      // 用于识别vue文件中的script块      test: /\.js$/,      loader: 'babel-loader',    }, {      // 用于识别vue文件中的style块      test: /\.less$/,     /*         vue-style-loader基于style-loader        https://www.npmjs.com/package/vue-style-loader      */      use: ['vue-style-loader', 'css-loader', 'less-loader']    }, {      test: /\.(gif|jpg|jpeg|png|svg|ttf|woff)$/,      loader: 'url-loader'    }]  },  plugins: [    new HTMLPlugin({      template: './index.html'    }),    // 将定义过的其它规则复制并应用到 .vue 文件里相应语言的块    new VueLoaderPlugin()  ]};

新建babel.config.js:

const presets = ["@babel/env"];module.exports = { presets };

这是基本的开发环境配置,先安装下依赖看能否跑起来:
npm i webpack webpack-cli webpack-dev-server vue-loader vue-style-loader vue-template-compiler @babel/core @babel/preset-env babel-loader css-loader file-loader url-loader html-webpack-plugin less less-loader vue-loader -D

npm i vue

安装完成后npm run dev, 打开浏览器localhost:4200:

ok,开发环境大概的配置就完成了。

开启热更新,安装vue-router和vuex

热更新:修改webpack.config.js:

// 省略const webpack = require('webpack'); devServer: {    port: 4200,    hot: true  },// 省略plugins: [    new HTMLPlugin({      template: './index.html'    }),    // 将定义过的其它规则复制并应用到 .vue 文件里相应语言的块    new VueLoaderPlugin(),        new webpack.HotModuleReplacementPlugin()  ]// 省略

安装vue-router和vuex:
npm i vue-router vuex

修改src/main.js:

import Vue from 'vue'import App from './App.vue'import Vuex from 'vuex'import VueRouter from 'vue-router'Vue.use(VueRouter)Vue.use(Vuex)new Vue({  el: '#root',  render: h => h(App)});

然后重新npm run dev即可。

下节:手动配置vue-cli下(待更新)