本文分上、中、下三个部分(先写上篇)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配置就这样完成了