vue-cli常用设置总结
基于vue-cli做了好几个项目了,想把一些自己的常用设置写出来,磨了好久,一看vue-cli3.0都快出来了,不能再磨了。。
路径相关
css内引用的资源
build->utils.js //generateloaderstringtobeusedwithextracttextplugin functiongenerateLoaders(loader,loaderOptions){ //less //ExtractCSSwhenthatoptionisspecified //(whichisthecaseduringproductionbuild) if(options.extract){ returnExtractTextPlugin.extract({ use:loaders, publicPath:'../../',//注意:此处根据路径,自动更改 fallback:'vue-style-loader' }) }else{ return['vue-style-loader'].concat(loaders) } }
本地访问
config->index.js module.exports={ build:{ //less //assetsPublicPath:'/', assetsPublicPath:'./', //less }, //less }
调试相关
内网访问
config->index.js module.exports={ //less dev:{ //less port:process.env.PORT||8080,//可改端口 host:'192.168.0.105',//不是8080端口可能需要指定host为本机IP } }
跨域代理
config->index.js module.exports={ //less dev:{ //less proxyTable:{ '/AppHome':{ target:'http://192.168.0.211:2334',//接口域名 changeOrigin:true,//是否跨域 pathRewrite:{ '^/AppHome':'/AppHome'//需要rewrite重写 } } }, } } config->dev.env.js module.exports=merge(prodEnv,{ NODE_ENV:'"development"', API_HOST:'"AppHome/"' }) config->prod.env.js module.exports={ NODE_ENV:'"production"', API_HOST:'"http://xxx.xxx.com/AppHome/"'//生产环境改为绝对地址,免得路径错了 } //调用 this.$http .post(process.env.API_HOST+"GetApproveTypeList",{ID:0}) .then(data=>{ let$data=data.data; if($data.IsSuccess){ this.list.push(...$data.Model); } });
路由加载切换
异步加载可以加快首屏加载速度,但是在开发阶段会导致热加载变慢,所以根据NODE_ENV来判断,开发环境不使用异步
let_import if(process.env.NODE_ENV==='development'){ _import=file=>require('@/components/'+file+'.vue').default } if(process.env.NODE_ENV==='production'){ _import=file=>()=>import('@/components/'+file+'.vue') } routes:[ { path:'/', name:'Index', component:_import('Approve/Index'), meta:{ level:1 } }, ]
打包
dll打包
1、在build目录新建webpack.dll.conf.js
varpath=require("path"); varwebpack=require("webpack"); module.exports={ //你想要打包的模块的数组 entry:{ vendor:['vue/dist/vue.esm.js',//有些资源需要直接指定js,否则会重复打包 'vuex', 'axios', 'vue-router' ] }, output:{ path:path.join(__dirname,'../static/js'),//打包后文件输出的位置 filename:'[name].dll.js', library:'[name]_library' //vendor.dll.js中暴露出的全局变量名。 }, plugins:[ newwebpack.DllPlugin({ path:path.join(__dirname,'..','[name]-manifest.json'), name:'[name]_library', context:__dirname }), //压缩打包的文件 newwebpack.optimize.UglifyJsPlugin({ compress:{ warnings:false } }) ] };
2、在build目录下的webpack.prod.conf.js添加新插件
constwebpackConfig=merge(baseWebpackConfig,{ //less plugins:[ //less newwebpack.DllReferencePlugin({ context:__dirname, manifest:require('../vendor-manifest.json') }) ] })
3、在项目根目录下的index.html内添加dll.js引用
title
4、在项目根目录下的package.json内添加dll命令(顺便给build命令添加report),运行一次生成dll.js
"scripts":{ "dev":"nodebuild/dev-server.js", "start":"npmrundev", "build":"nodebuild/build.js--report", "dll":"webpack--configbuild//webpack.dll.conf.js" }
关闭SourceMap
config->index.js module.exports={ //less build:{ //less productionSourceMap:false, }, }
总结
以上所述是小编给大家介绍的vue-cli常用设置总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。