- 下載plugin 和 loader
- 編寫配置項
- 編寫組件
- 引入組件
- 引入依賴便可
|-->config
|----->webpack.base.js
|----->webpack.dev.js
|----->webpack.pro.js
|-->src
|----->html (htmlwebpackplugin 以這裏渲染)
|--------->index.html
|----->router
|--------->index.js
|----->views
|--------->Home.vue
|--------->Login.vue
|----->App.vue
|----->main.js
|-->node_modules
|-->package.json
依賴包ALL:
package.jsonhtml
{ "scripts": { "dev": "webpack-dev-server --config config/webpack.dev.js" }, "devDependencies": { "html-webpack-plugin": "^4.2.0", //混入html "vue": "^2.6.11", "vue-loader": "^15.9.1", "vue-router": "^3.1.6", "vue-template-compiler": "^2.6.11", "webpack": "^4.42.1", "webpack-cli": "^3.3.11", "webpack-dev-server": "^3.10.3", "webpack-merge": "^4.2.2" } }
配置這個的緣由固然是讓咱們得已分開開發環境和具體的對應後期優化,以及在package.json裏的script寫更多指令vue
咱們須要引入
webpack-merge
這個包以便咱們在配置多個webpack依賴
webpack.base.jsnode
//用於公用環境配置 const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const VueLoaderPlugin = require("vue-loader/lib/plugin"); module.exports = { entry: "./src/main.js", output: { path: path.resolve(__dirname, "../dist"), filename: "js/bundle.js", // publicPath: "./", }, module: { rules: [ { test: /\.vue$/, loader: "vue-loader", }, ], }, plugins: [ new HtmlWebpackPlugin({ template: "./src/html/index.html" }), new VueLoaderPlugin(), ], };
webpack.dev.jswebpack
//用於開發環境配置 const base = require("./webpack.base.js"); //非src 旨在node模塊 const merge = require("webpack-merge"); /* const path = require("path"); */ module.exports = merge(base, { mode: "development", devServer: { /* contentBase: path.join(__dirname, "../dist"), compress: true, */ port: 3000, open: true, hot: true, }, });
webpack.pro.jsweb
//用於生產環境配置 const base = require("./webpack.base.js"); const merge = require("webpack-merge"); module.exports = merge(base, { mode: "production", });
截止到目前,咱們算是已經下好了包,配置好了webpack
npm|yarn|cnpm install|add xxx xxx -D
:webpack處理vue xxx
vue-router
vue vue-router vue-template-compiler vue-loader
webpack配置項和開發 xxx
npm
webpack webpack-cli webpack-dev-server webpack-merge
html混入模板 xxx
json
html-webpack-plugin
views 對應組件 ------------------這兩個更改比較大
Home.vueapp
<template> <div id="Home">這是Home組件</div> </template> <script> export default {}; </script> <style></style>
Login.vuewebpack-dev-server
<template> <div id="Login"> 這是Login組件 </div> </template> <script> export default {}; </script> <style></style>
import Vue from "vue"; import VueRouter from "vue-router"; import Home from "../views/Home.vue"; import Login from "../views/Login.vue"; Vue.use(VueRouter); const router = new VueRouter({ routes: [ { path: "/", redirect: "/home", }, { path: "/home", component: Home, }, { path: "/login", component: Login, }, ], }); export default router;
main.js
import Vue from "vue"; import App from "./App.vue"; import router from "./router"; new Vue({ el: "#app", render: (h) => h(App), router, });