2021年7月29日星期四

vue3.0使用ant-design-vue进行按需加载原来这么简单

下载 ui库

yarn add ant-design-vue默认是全局引入,打包后体积很大,非常影响首屏加载速度,

按需加载

下载按需加载的插件;推荐使用cnpmcnpm install babel-plugin-import --save-dev 下载在开发环境中

在项目的根目录下创建 babel.config.js

module.exports = { presets: [ '@vue/cli-plugin-babel/preset' ], plugins: [ ["import",  {   libraryName: "ant-design-vue",  libraryDirectory: "es",  style: true, // `style: true` 会加载 less 文件  } ] ]}

在项目跟目录下创建vue.config.js配置项目信息

const Timestamp = new Date().getTime()module.exports = { chainWebpack: config => {  config.plugin('html').tap(args => {   args[0].title = '我的vue3.0' //这个是网站标题   return args  }) }, css: {  loaderOptions: {   // 你的基础样式 因为没有我就注释了   // sass: {   //  data: `   // 		@import "@/assets/style/base.scss";   // 	`,   // },   //这只主题样式,修改此文件后需要重新启动,   less: {    lessOptions: {     modifyVars: {      //这是配置css主题色      'primary-color': '#007AFF',      },     javascriptEnabled: true,    },   },  },  // 每次打包后生成的css携带时间戳  extract: {   filename: `css/[name].${Timestamp}.css`,   chunkFilename: `css/[name].${Timestamp}.css`,  }, }, productionSourceMap: false, //打包后相对目录 publicPath: process.env.NODE_ENV === 'production' ? '././' : './', configureWebpack: {  //每次打包后生成的js携带时间戳  output: {   filename: `[name].${Timestamp}.js`,   chunkFilename: `[name].${Timestamp}.js`,  }, },}

安装less与less-loader

我们需要确认自己是否安装了 less与less-loader【自己看一下】cnpm install less less-loader --save-dev 【进行安装】可能你安装后会出现ess less-loader的版本过高。这个时候你需要将你的版本下降一下我们为什么需要安装less与less-loader因为我们ant-design-vue是用less编写的配置babel.config.js后,下面是我的版本库dependencies用户发布环境"dependencies": { "@ant-design/icons-vue": "^6.0.1", "ant-design-vue": "^2.2.1", "core-js": "^3.6.5", "vue": "^3.0.0", "vue-class-component": "^8.0.0-0", "vue-router": "^4.0.0-0"},devDependencies用于本地环境开发时候"devDependencies": { "@typescript-eslint/eslint-plugin": "^4.18.0", "@typescript-eslint/parser": "^4.18.0", "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-router": "~4.5.0", "@vue/cli-plugin-typescript": "~4.5.0", "@vue/cli-service": "~4.5.0", "@vue/compiler-sfc": "^3.0.0", "@vue/eslint-config-typescript": "^7.0.0", "babel-plugin-import": "^1.13.3", "eslint": "^6.7.2", "eslint-plugin-vue": "^7.0.0", "less": "^3.13.1", "less-loader": "^7.1.0", "node-sass": "^4.12.0", "sass-loader": "^8.0.2", "typescript": "~4.1.5" },
devDependencies和dependencies区别?
devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内。通过NODE_ENV=developement或NODE_ENV=production指定开发还是生产环境。而dependencies依赖的包不仅开发环境能使用,生产环境也能使用。其实这句话是重点,按照这个观念很容易决定安装模块时是使用--save还是--save-dev所以像css预处理语言我们肯定是--save-dev像ui库请求axios我们肯定是--save

main.ts 组件进行按需引入

import { createApp } from 'vue'// 引入App.vue这个入口文件import App from './App.vue'// 引入路由import router from './router'const app = createApp(App)import { Button, ConfigProvider, Layout, Menu, message, Input, Space, Dropdown, Divider, Form, AutoComplete, Modal, Tree, Drawer, Row, Col, Select, DatePicker, Tooltip, Breadcrumb, Popconfirm, InputNumber, Table, Pagination,} from 'ant-design-vue'app.use(Button) .use(Layout) .use(ConfigProvider) .use(Menu) .use(Input) .use(Space) .use(Dropdown) .use(Divider) .use(Form) .use(AutoComplete) .use(Modal) .use(Tree) .use(Drawer) .use(Row) .use(Col) .use(Select) .use(DatePicker) .use(Tooltip) .use(Breadcrumb) .use(Popconfirm) .use(InputNumber) .use(Table) .use(Pagination) .use(router). mount('#app')

按需加载说明和优势

后只需从 ant-design-vue 引入模块即可,无需单独引入样式.babel-plugin-import 会帮助你加载 JS 和 CSSimport { Button } from "ant-design-vue";也就是说你不需要引入import 'ant-design-vue/dist/antd.css'这个样式文件了

Vue3.0出现Cannot read property 'use' of undefined

其实很简单 哈哈哈 就是因为版本的问题执行 cnpm i --save ant-design-vue@next

Vue3.0出现Cannot find module 'vue-loader-v16/pa......

原文转载:http://www.shaoqun.com/a/892296.html

跨境电商:https://www.ikjzd.com/

kkr:https://www.ikjzd.com/w/1340

grab:https://www.ikjzd.com/w/841

夸克:https://www.ikjzd.com/w/1237


下载ui库yarnaddant-design-vue默认是全局引入,打包后体积很大,非常影响首屏加载速度,按需加载下载按需加载的插件;推荐使用cnpmcnpminstallbabel-plugin-import--save-dev下载在开发环境中在项目的根目录下创建babel.config.jsmodule.exports={presets:['@vue/cli-plugin-babel/
damai:https://www.ikjzd.com/w/1391
急速:https://www.ikjzd.com/w/1861
parenthood:https://www.ikjzd.com/w/2497
四川新春旅游季完美收官 :http://www.30bags.com/a/409238.html
四川新添12个国家4A级旅游景区:http://www.30bags.com/a/424078.html
四川雅安:蜿蜒在大雪中的"国道长龙" 美如仙境:http://www.30bags.com/a/224598.html
四川雅安哀悼日是什么时候开始?:http://www.30bags.com/a/402469.html
老师在我胯下呻呤 老师的屁股又白又大:http://lady.shaoqun.com/m/a/247323.html
深圳宝安科技馆8月展览汇总(持续更新):http://www.30bags.com/a/517601.html
2021时尚深圳展蝶讯馆展览好看吗:http://www.30bags.com/a/517602.html
2021时尚深圳蝶讯馆观展攻略:http://www.30bags.com/a/517603.html
深圳欢乐谷夏浪音乐节有朱星杰吗:http://www.30bags.com/a/517604.html

没有评论:

发表评论

注意:只有此博客的成员才能发布评论。