webpack4.6.0打包配置vue项目带注释
2018-04-28 00:04
696 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37144354/article/details/80115045
阅读更多
const path = require('path');// 引入node的path包 const HTMLPlugin = require('html-webpack-plugin');//引入html包 const webpack = require('webpack'); const ExtractPlugin = require('extract-text-webpack-plugin');//将css打包成一个css文件 const isDev = process.env.NODE_ENV === 'development';//判断是否是开发环境 const config = { target:'web',//编译目标,运行在web端 entry:path.join(__dirname,'src/index.js'),//入口文件名(项目主文件) output:{//输出出口 filename:'build.[hash:8].js', //输出的文件名 path:path.join(__dirname,'dist') //输出路径 }, module:{//配置一个加载资源包 rules:[//规则 { test:/\.vue$/,//验证文件结尾文件类型 loader:'vue-loader'//加载的模块 }, { test:/\.jsx$/, loader:'babel-loader' }, { test:/\.(gif|jpg|jpeg|png|svg)$/, use:[ { loader:'url-loader', options:{//配置loader参数 limit:1024,//文件小于1024字节时,转换成base64编码,写入文件里面 name:'[name].[ext]' } } ] } ] }, //webpack插件配置 plugins:[ //webpack编译的过程中和在页面自己写的js判断环境调用process.env new webpack.DefinePlugin({ 'process.env':{ NODE_ENV:isDev ? '"development"':'"production"' } }), new HTMLPlugin() ] }; if (isDev){//开发环境配置 config.module.rules.push({ test:/\.styl/, use:[ 'style-loader', 'css-loader', { loader:'postcss-loader', options:{ sourceMap:true,//stylus和postcss同时会生成sourceMap,等于true时提高效率 } }, 'stylus-loader' ] }) config.devtool = '#cheap-module-eval-source-map';//页面代码调试 config.devServer = { port:8080, host:'0.0.0.0',//通过localhost:127.0.0.1或者本机内网IP访问(别人电脑/手机可访问) overlay:{//webpack编译出错时,则显示到网页上 errors:true }, open:true,//启动webpack-devserver时自动打开浏览器 hot:true //不刷新热加载数据 需引入插件 /* historyApiFallback:{ //路由地址映射到index.html上 }*/ }; config.plugins.push(//热加载插件 new webpack.HotModuleReplacementPlugin(), new webpack.NoEmitOnErrorsPlugin() ) }else{ //生成配置环境 config.entry = {//将所用的类库单独打包 app:path.join(__dirname,'src/index.js'), vendor:['vue'] } config.output.filename = '[name].[chunkhash:8].js'; config.module.rules.push({ test:/\.styl/, use:ExtractPlugin.extract({ fallback:'style-loader', use:[ 'css-loader', { loader:'postcss-loader', options:{ sourceMap:true } }, 'stylus-loader' ] }) }) config.plugins.push(//正式环境css生成的css文件名字 //new ExtractPlugin('styles.[contentHash:8].css'), //[contentHash]路径变量不可用,可以直接把它去掉或者换成[name]、[id]都可以打包成功 new ExtractPlugin('styles.[name].css') /*//!* webpack 4.0之后就不用了 //将类库文件单独打包q'q new webpack.optimize.CommonsChunkPlugin({ name:'vendor' }), // webpack相关的代码单独打包 new webpack.optimize.CommonsChunkPlugin({ name: 'runtime' })*/ ); /*config.optimization = { splitChunks:{//设置缓存的 chunks cacheGroup:{ commons:{ chunks:'initial', //必须三选一 initial all async(默认就是异步) minChunks:2, //最小chunk,默认1 maxInitialRequests:5, //最大初始化请求书,默认1 minSize:0 //最小尺寸,默认0 }, vendor:{ test:/node_modules/, //正则规则验证,如果符合就提取chunk chunks:'initial', //必须三选一 initial all async(默认就是异步) name:'vendor', //要缓存的,分割出来的chunk名称 priority:10, //缓存组优先级 enforce:true } } }, runtimeChunk:true }*/ } module.exports = config;
阅读更多
相关文章推荐
- vue打包项目,webpack配置改变以及图片正确引入姿势
- webpack+vue-cil 配置接口地址代理以及将项目打包到子目录的方法
- 16.如何做到webpack打包vue项目后,可以修改配置文件
- 使用webpack打包后的vue项目如何运行(express)
- vue脚手架初始化项目中配置文件webpack.prod.conf.js代码含义
- vue-cli webpack2项目打包优化
- vue-cli的webpack模板项目配置文件分析
- vue-cli的webpack模版项目配置解析
- 在vue项目中webpack打包后字体不生效
- 使用webpack配置vue项目代理 (超简单)
- vue项目webpack中Npm传递参数配置不同域名接口
- vue-cli的webpack模板项目配置文件分析
- Vue项目webpack打包部署到服务器
- csdn上看到的一篇关于vue-cli的webpack模板项目配置文件分析
- webpack从零开始构建项目之vue模板配置(二)
- vue-cli的webpack模板项目配置文件分析
- 关于webpack打包vue项目后的页面body为空的问题
- vue-cli的webpack模板项目配置文件分析
- vue-cli的webpack模板项目配置文件分析
- 使用vue-cil构建vue2项目,webpack打包项目