一、代码地址

github:https://github.com/MengFangui/VueWebpackConfig

二、配置说明

1、命令

(1)npm i 安装依赖包

(2)num run dev 发布调试环境

(3)npm run bulid 发布线上环境

2、功能

(1)处理vue文件

(2)处理js文件

(3)ES6编译

(4)css处理(包括自动添加前缀)

(5)图片处理

(6)线上环境:文件MD5(hash)

(7)线上环境:文件压缩(js压缩)

(8)线上环境:模板文件处理

三、关键文件

1、webpack.config.js

//处理共用、通用的js
var webpack = require('webpack');
//处理html模板
var HtmlWebpackPlugin = require('html-webpack-plugin');
//css单独打包
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var merge = require('webpack-merge');
var webpackBaseConfig = require('./webpack.config.js'); // 清空基本配置的插件列表
webpackBaseConfig.plugins = []; module.exports = merge(webpackBaseConfig, {
output: {
//用于在生产模式下更新内嵌到css、html文件里的url值
publicPath: 'dist/',
// 将入口文件重命名为带有 20 位 hash 值的唯一文件
filename: '[name].[hash].js'
},
plugins: [
new ExtractTextPlugin({
// 提取 css,并重命名为带有 20 位 hash 值的唯一文件
filename: '[name].[hash].css',
allChunks: true
}),
// 定义当前 node 环境为生产环境
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
// 压缩 js
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),
// 提取模板,并保存入口 html 文件
new HtmlWebpackPlugin({
//输出文件
filename: '../index_prod.html',
//模板文件
template: './index.ejs',
inject: false,
//html压缩
// minify:{
// //删除注释
// removeComments:true,
// //删除空格
// collapseWhitespace:true
// }
})
]
});

2、webpack.prod.config.js (用于线上环境)

//处理共用、通用的js
var webpack = require('webpack');
//处理html模板
var HtmlWebpackPlugin = require('html-webpack-plugin');
//css单独打包
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var merge = require('webpack-merge');
var webpackBaseConfig = require('./webpack.config.js'); // 清空基本配置的插件列表
webpackBaseConfig.plugins = []; module.exports = merge(webpackBaseConfig, {
output: {
//用于在生产模式下更新内嵌到css、html文件里的url值
publicPath: 'dist/',
// 将入口文件重命名为带有 20 位 hash 值的唯一文件
filename: '[name].[hash].js'
},
plugins: [
new ExtractTextPlugin({
// 提取 css,并重命名为带有 20 位 hash 值的唯一文件
filename: '[name].[hash].css',
allChunks: true
}),
// 定义当前 node 环境为生产环境
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
// 压缩 js
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
}),
// 提取模板,并保存入口 html 文件
new HtmlWebpackPlugin({
//输出文件
filename: '../index_prod.html',
//模板文件
template: './index.ejs',
inject: false,
//html压缩
// minify:{
// //删除注释
// removeComments:true,
// //删除空格
// collapseWhitespace:true
// }
})
]
});

3、package.json

{
"name": "hello",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"dev": "webpack-dev-server --open --config webpack.config.js",
"bulid": "webpack --progress --hide-modules --config webpack.prod.config.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"autoprefixer": "^7.2.3",
"babel": "^6.23.0",
"babel-core": "^6.24.0",
"babel-loader": "^6.4.1",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.24.0",
"babel-preset-latest": "^6.24.1",
"babel-runtime": "^6.23.0",
"css-loader": "^0.27.3",
"extract-text-webpack-plugin": "^2.1.0",
"file-loader": "^0.10.1",
"html-webpack-plugin": "^2.30.1",
"style-loader": "^0.16.1",
"url-loader": "^0.5.9",
"vue-hot-reload-api": "^2.0.11",
"vue-loader": "^11.3.4",
"vue-style-loader": "^2.0.5",
"vue-template-compiler": "^2.2.6",
"webpack": "^2.3.2",
"webpack-dev-server": "^2.4.2",
"webpack-merge": "^4.1.1"
},
"dependencies": {
"vue": "^2.2.6"
}
}

最新文章

  1. oracle 生成随机数【待整理】
  2. ext3grep 恢复删除
  3. poj 1265 Area(Pick定理)
  4. Spring.Net+NHibernate+asp.net mvc + easyui
  5. android详细信息java.util.ConcurrentModificationException变态
  6. PHP 调用asp.net Web Services服务问题总结
  7. picturefill + picture 标签 实现兼容性很棒的 响应式图片 自适应 屏幕大小
  8. Android Studio JNI开发入门教程
  9. [HEOI2015]兔子与樱花 树规+贪心
  10. SQL语句的CRUD
  11. C++常用宏
  12. 初学者须知 常见的HTML5开发工具有哪些
  13. 机器学习进阶-人脸关键点检测 1.dlib.get_frontal_face_detector(构建人脸框位置检测器) 2.dlib.shape_predictor(绘制人脸关键点检测器) 3.cv2.convexHull(获得凸包位置信息)
  14. Character Sets: Migrating to utf8mb4 with pt_online_schema_change
  15. AOP不起作用的原因之一
  16. STL中的Vector相关用法
  17. C#基础-如何找到devenv的路径位置
  18. Atitit.注重细节还是关注长远??长远优先
  19. 黑盒测试实践-任务进度-Day03
  20. noip模拟赛 动态仙人掌(并查集,贪心)

热门文章

  1. python中的enumerate使用
  2. rosbag使用--记录深度相机数据
  3. 准备开发开放API接口
  4. rm 命令(删除文件和目录)
  5. 火狐firefox插件配合scrapy,注意tbody会导致empty
  6. [UML] 如何找参与者、找用例
  7. POJ 2503.Babelfish-sscanf()函数+strcmp()函数+二分
  8. Javascript 行为委托
  9. hadoop 编译代码及运行
  10. 数据库的语言——SQL