本文分上、中、下三個部分(先寫上篇)css
代碼示例地址github.com/zwfun/zw-vu…html
如下全部的知識都是從下面的參考文檔學來的,若是看過好幾遍的同窗我這篇文章就不用看了,若是沒看過的先去看幾遍,看過了實在仍是不會的同窗再來看我這篇文章vue
本文不寫具體的操做步驟, 只寫這個過程當中須要什麼,具體怎麼作 以參考文檔的形式給出 網上不少文章一上來就介紹安裝各類包,看完一遍以後仍是隻知其一;不知其二,無從下手。 本身寫一個文章,按本身須要的功能加載各類包。node
第一次配置webpack, 就從構建一個vue的helloworld項目開始。 我須要讓webpack幫我打包vue項目webpack
這時候是否是腦殼一片空白, 不知道從什麼地方開始。 萬事開頭難,先從我須要webpack幫我作什麼開始git
ps: 也就作5件事很少嘛es6
開始前先看看webpack官方中文文檔-指南文檔的概念和指南,也許webpack官方文檔-配置部分你也應該看下github
看完以後應該對webpack有必定的瞭解了, 那我們繼續web
webpack安裝和入口和出口配置 這些直接忽略,不會的話看官方文檔的起步章節vue-cli
webpack幫咱們打包vue文件
打包vue文件須要使用到vue-loader(Vue Loader 是一個 webpack 的 loader,它容許你以一種名爲單文件組件 的格式撰寫 Vue 組件)
安裝vue-loader 參考官方文檔-手動設置
npm install -D vue-loader vue-template-compiler
vue-loader webpack配置 參考官方文檔-手動設置
// webpack.base.config.js
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
module: {
rules: [
// ... 其它規則
{
test: /\.vue$/,
loader: 'vue-loader'
}
]
},
plugins: [
// 請確保引入這個插件!
new VueLoaderPlugin()
]
}
複製代碼
webpack幫咱們打包css文件
// 正式環境配置
rules: [
{
test: /\.scss$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: 'css/'
}
},
'css-loader',
'sass-loader',
]
},
{
test: /\.css$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: 'css/'
}
},
'css-loader'
]
},
]
// 開發環境配置
rules: [
{
test: /\.scss$/,
use: [
'vue-style-loader',
'css-loader',
'sass-loader'
]
},
{
test: /\.css$/,
use: [
'vue-style-loader',
'css-loader'
]
}
]
複製代碼
使用babel7幫我將es6轉爲es5
{ "presets": [[ "@babel/env", { "useBuiltIns": "entry" } ]], "plugins": ["@babel/plugin-transform-runtime"] }
加載字體和圖片等
字體和圖片是使用file-loader加載。配置file-loader後咱們能使用像import img from './file.png'這樣的方式加載文件
rules: [ { test: /\.(png|svg|jpg|gif)$/, use: [ 'file-loader' ] }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: [ 'file-loader' ] } ]
熱更新
devServer: { host: '0.0.0.0', historyApiFallback: true, port: 8888 },
構建整個項目
const CleanWebpackPlugin = require('clean-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); plugins: [ new CleanWebpackPlugin(), new HtmlWebpackPlugin({ title: 'zw-vue-cli', template: path.resolve(__dirname, '../', 'index.html') }) ]
一個基礎的vue webpack配置就這樣完成了