当前位置: 首页 > Web前端 > vue.js

vue项目(电商后台管理)优化推荐

时间:2023-04-01 12:32:49 vue.js

项目优化--进度条添加nprogress,ui界面依赖安装依赖,搜索nprogress安装,或者在终端安装npminprogress-S导入main.js中的进度条组件//importtheprogressbarplug-inimportNProgressfrom'nprogress'//导入进度条样式import'nprogress/nprogress.css'useNProgress.start()显示进度条(使用请求拦截器)NProgress.start()useNProgress.done()隐藏进度条(使用responseInterceptor)NProgress.done()移除打包的console(在babel.config.js中设置)安装babel-plugin-transform-remove-console在终端ibabel下载npm-plugin-transform-remove-console-S在plugins节点下添加"transform-remove-console"()"plugins":[["component",{"libraryName":"element-ui","styleLibraryName":"theme-chalk"}],//这是开发中禁止所有控制台输出的“transform-remove-console”dreleaseenvironments]仅在发布阶段移除控制台使用process.env.NODE_ENV判断当前版本是否为开发阶段varprodPlugins=[]if(process.env.NODE_ENV=='production'){prodPlugins.push('transform-remove-console')}使用展开运算符将数组中的插件交给plugins"plugins":[["component",{"libraryName":"element-ui","styleLibraryName":"主题粉笔”}],...prodPlugins]使用vue.config.js修改webpack的默认配置创建一个vue.config.js文件js内部暴露一个配置对象module.exports={//文件打包后,一个dist会生成文件夹index.html可以直接双击运行publicPath:'./',}自定义入口文件使用chainWebpack配置不同的环境,设置不同的入口文件module.exports={//文件打包后,将在dist文件夹中生成一个索引。html可以直接双击运行publicPath:'./',chainWebpack:config=>{//当前环境为release阶段config.when(process.env.NODE_ENV=='production',config=>{config.entry('app').clear().add('./src/main-prod.js')})//当前环境为开发阶段config.when(process.env.NODE_ENV=='development',config=>{config.entry('app').clear().add('./src/main-dev.js')})}}通过CDN加载外部资源(获取最近的服务器资源)因为入口文件通过import方式导入包,最终会打包到同一个js文件中,所以chunk-vendors文件太大。由于这些文件被打包成同一个js文件,体积太大,所以有些js文件被忽略不打包(只需要在发布阶段配置即可)//使用externals设置exclusions//填写config.set('externals',{vue:'Vue','vue-router':'VueRouter',releasemodevue.config.js中的axios:'axios',echarts:'echarts',nprogress:'NProgress','vue-quill-编辑器':'VueQuillEditor'})虽然忽略了一些js文件,但是入口文件中还有一些css文件比较大,所以直接删除导入的cssimportVueQuillEditorfrom'vue-quill-editor'//富文本editingimport'quill/dist/quill.core.css'import'quill/dist/quill.snow.css'import'quill/dist/quill.bubble.css'把上面的css去掉不打包,最终的样式肯定是有问题,所以引入cdn资源文件在publicindex.html我们也忽略没有打包的js文件,所以也是直接在publicindex.html中引入cdn资源配置element-ui的cdn资源删除点播中的入口文件导入element.js导入element的cdn资源根据不同的环境定制不同的首页内容我们需要在index.html中判断当前环境是处于开发阶段还是发布阶段,但是index.html中无法获取到process.env.NODE_ENV。html,但索引。htmlWebpackPlugin插件的配置数据可以通过html获取。为什么?第一个效果得到获取index.html,生成新的index.html会自动导入打包好的js和css文件。如果是release阶段,我们在htmlWebpackPlugin中添加一个flag为true//使用插件config.plugin('html').tap(args=>{//添加参数isProdargs[0].isProd=truereturnargs})如果是开发阶段,还要为flase添加一个标识//使用插件config.plugin('html').tap(args=>{//添加参数isProdargs[0]。isProd=falsereturnargs})页面通过htmlWebpackPlugin获取logo,判断logo是true还是false,如果是true,表示发布阶段,需要添加cdn资源,如果是false,则不需要添加<%if(htmlWebpackPlugin.options.isProd){%>cdn资源文件<%}%>路由的懒加载又叫:路由按需加载当匹配到某个路由时,就会加载并安装对应的资源文件@babel/plugin-syntax-dynamic-import配置babel-plugins"plugins":[["component",{"libraryName":"element-ui","styleLibraryName":"theme-chalk"}],...prodPlugins,"@babel/plugin-syntax-dynamic-import"]修改导入方法constLogin=()=>import(/*webpackChunkName:"login_home_welcome"*/'../views/Login.vue')constHome=()=>import(/*webpackChunkName:"login_home_welcome"*/'../views/Home.vue')constWelcome=()=>import(/*webpackChunkName:"login_home_welcome"*/'../views/Welcome.vue')constUsers=()=>import(/*webpackChunkName:"user"*/'../views/users/Users.vue')constRights=()=>import(/*webpackChunkName:"right_roles"*/'../views/power/Rights.vue')constRoles=()=>import(/*webpackChunkName:"right_roles"*/'../views/power/Roles.vue')constGoodCate=()=>import(/*webpackChunkName:"goods"*/'../views/goods/cate.vue')constGoddsParams=()=>import(/*webpackChunkName:"goods"*/'../views/goods/params.vue')constGoddsList=()=>import(/*webpackChunkName:"goods"*/'../views/goods/list.vue')constGoodsAdd=()=>import(/*webpackChunkName:"goods"*/'../views/goods/add.vue')constOrder=()=>import(/*webpackChunkName:"order"*/'../views/Order.vue')constReports=()=>import(/*webpackChunkName:"report"*/'../views/Reports.vue')

猜你喜欢