当前位置: 首页 > web >正文

vue3项目创建-配置-elementPlus导入-路由自动导入

目录

方法一:create-vue

方法二 :Vite + Vue

Vite.config.ts配置

引入element-plus

安装

如何在项目中使用 Element Plus

完整引入

按需导入

vue3+vite中自动配置路由的神器:vite-plugin-pages

1. 安装

2、修改vite.config.js中配置

3. main.js中路由配置

方法一:create-vue

1.前提环境条件
已安装 16.0 或更高版本的 Node.js
使用以下命令查看node版本:

node -v

2.创建一个Vue应用

执行:npm init vue@latest,这一指令将会安装并执行 create-vue

npm init vue@latest

Manually select features,手动选择

我的选择:

  •         less
    •         ESLint + Standard config
      •         Lint on save
        •         In dedicated config files(将配置文件放在单独文件中)

方法二 :Vite + Vue

npm create vite@latest

npm create vite@latest 命令是用来借助 Vite 构建工具快速生成一个新的前端项目。

Vite 采用原生 ES 模块导入方式,相比传统的打包工具,启动开发服务器的速度要快得多。 

其他

禁用格式化插件prettier format on save,然后安装eslint,打开settings.json添加以下规则

 //实现自动格式化"editor.codeActionsOnSave": {"source.fixAll":true },//关闭保存自动格式化"editor.formatOnSave": false,

 2.打开.eslintrc.cjs添加规则

rules: {'prettier/prettier': ['warn',{singleQuote: true, //单引号semi: false, //无分号printWidth: 80, //每行宽度至多80trailingComma: 'none', //不加对象|数组最后逗号endOfLine: 'auto' //换行符号不限制}],//ESLint关注于规范'vue/multi-word-component-names': ['warn',{ignores: ['index'] //vue组件名称多单词组成(忽略index.vue)}],'vue/no-setup-props-destructure': ['off'], //关闭props解构的校验'no-undef': 'error'}

Vite.config.ts配置(没测试)

1.配置和pinia,router,axios,ref,reactive引入等等
2.配置代理
3.配置.ts,.vue,.tsx等等文件别名
4.配置antdV按需加载
5.配置antdV主题色+全局引入less+全局颜色变量
6.配置vue使用tsx写法
7.配置测试环境保留打印

import { defineConfig, loadEnv } from 'vite'
import type { UserConfig, ConfigEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx' //tsx插件引入
import AutoImport from 'unplugin-auto-import/vite' //自动引入ref,reactive等等等
// 配置antd-v按需加载
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
// import path from 'path';
import { resolve, join } from 'path'
import { wrapperEnv } from './build/utils'// defineConfig 工具函数,这样不用 jsdoc 注解也可以获取类型提示
export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {console.log(command, mode, '===')const root = process.cwd()const env = loadEnv(mode, root) // 环境变量对象console.log('环境变量------', env)console.log('文件路径( process.cwd())------', root)console.log('文件路径(dirname)------', __dirname + '/src')const { VITE_DROP_CONSOLE } = wrapperEnv(env)// // dev 独有配置return {root, //项目根目录(index.html 文件所在的位置) 默认: process.cwd()base: '/', //  开发或生产环境服务的公共基础路径:默认'/'   1、绝对 URL 路径名: /foo/;  2、完整的 URL: https://foo.com/; 3、空字符串或 ./(用于开发环境)publicDir: resolve(__dirname, './dist'), //默认'public'  作为静态资源服务的文件夹  (打包public文件夹会没有,里面得东西会直接编译在dist文件下)assetsInclude: resolve(__dirname, './src/assets'), // 静态资源处理// ******插件配置******plugins: [vue(),vueJsx(),AutoImport({imports: ['vue','vue-router','pinia',{axios: [['default', 'axios'] // import { default as axios } from 'axios',]}],dts: 'types/auto-import.d.ts' //生成全局引入的文件}),Components({resolvers: [AntDesignVueResolver({importStyle: 'less' //修改antdv主题色})]})], //配置插件// ******开发服务器配置******server: {https: true, //(使用https)启用 TLS + HTTP/2。注意:当 server.proxy 选项 也被使用时,将会仅使用 TLShost: true, // 监听所有地址port: 8080, //指定开发服务器端口:默认3000open: true, //启动时自动在浏览器中打开cors: false, //为开发服务器配置 CORSproxy: {//配置自定义代理规则// 字符串简写写法'/jpi': 'http://192.168.1.97:4567','/api': {target: 'http://192.168.1.97:108',changeOrigin: true, //是否跨域rewrite: path => path.replace(/^\/api/, '')}}// hmr: {//   overlay: false// }},// ******项目构建配置******build: {target: 'modules', //设置最终构建的浏览器兼容目标  //es2015(编译成es5) | modulesoutDir: 'dist', // 构建得包名  默认:distassetsDir: 'assets', // 静态资源得存放路径文件名  assetssourcemap: false, //构建后是否生成 source map 文件brotliSize: false, // 启用/禁用 brotli 压缩大小报告。 禁用该功能可能会提高大型项目的构建性能minify: 'esbuild', // 项目压缩 :boolean | 'terser' | 'esbuild'chunkSizeWarningLimit: 1000, //chunk 大小警告的限制(以 kbs 为单位)默认:500cssTarget: 'chrome61' //防止 vite 将 rgba() 颜色转化为 #RGBA 十六进制符号的形式  (要兼容的场景是安卓微信中的 webview 时,它不支持 CSS 中的 #RGBA 十六进制颜色符号)},// ******resolver配置******resolve: {alias: {// 别名配置// 键必须以斜线开始和结束'@': resolve(__dirname, 'src'),components: resolve(__dirname, './src/components'),assets: resolve(__dirname, './src/assets'),'#': resolve(__dirname, 'types'),build: resolve(__dirname, 'build')}},// ******打印+debugger清除配置******// 测试环境保留打印esbuild: {pure: VITE_DROP_CONSOLE ? ['console.log', 'debugger'] : []},css: {// 全局变量+全局引入less+配置antdv主题色preprocessorOptions: {less: {javascriptEnabled: true,// 全局变量使用:@primary-colormodifyVars: {'primary-color': '#1890ff', // 全局主色'link-color': ' #1890ff', // 链接色'success-color': ' #52c41a', // 成功色'warning-color': ' #faad14', // 警告色'error-color': ' #f5222d', // 错误色'font-size-base': ' 14px', // 主字号'heading-color': ' rgba(0, 0, 0, 0.85)', // 标题色'text-color': ' rgba(0, 0, 0, 0.65)', // 主文本色'text-color-secondary': ' rgba(0, 0, 0, 0.45)', // 次文本色'disabled-color': ' rgba(0, 0, 0, 0.25)', // 失效色'border-radius-base': ' 2px', // 组件/浮层圆角'border-color-base': ' #d9d9d9', // 边框色'box-shadow-base': ' 0 2px 8px rgba(0, 0, 0, 0.15)' // 浮层阴影}}}}}
})

引入element-plus

Element-Plus官方网址

安装

npm install element-plus --save

如何在项目中使用 Element Plus

完整引入

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'const app = createApp(App)app.use(ElementPlus)
app.mount('#app')

按需导入

您需要使用额外的插件来导入要使用的组件。

自动导入推荐​

首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件

npm install -D unplugin-vue-components unplugin-auto-import

然后把下列代码插入到你的 Vite 或 Webpack 的配置文件中

Vite 

import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({// ...plugins: [// ...AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [ElementPlusResolver()],}),],
})

vue3+vite中自动配置路由的神器:vite-plugin-pages

1. 安装

npm install vite-plugin-pages

2、修改vite.config.js中配置

import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import Pages from 'vite-plugin-pages' //自动导入路由插件// https://vite.dev/config/
export default defineConfig({plugins: [vue(),vueDevTools(),Pages({dirs:[{dir:'src/views',baseRoute:''},{dir:'src/components',baseRoute:''}] }), //自动导入路由插件配置],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},
})

也可以选择其他配置

  plugins: [...Pages({// 自动读取src/views下的vue文件,生成路由信息,默认路由路径'/‘dirs: [{ dir: "src/views", baseRoute: "/" }],})]

2. 不将所有 components 目录下的 .vue 文件生成路由

    Pages({// 排除在外的目录,即不将所有 components 目录下的 .vue 文件生成路由exclude: ['**/components/*.vue'],}),

3. main.js中路由配置


import { createApp } from 'vue'
import { createPinia } from 'pinia'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'import { createRouter, createWebHashHistory } from "vue-router"
// 这里就是vite-plugin-pages生成的路由信息,正常使用即可
import routes from "virtual:generated-pages"const router = createRouter({history: createWebHashHistory(),routes
})const app = createApp(App)app.use(ElementPlus)
app.use(createPinia())
app.use(router)app.mount('#app')

http://www.xdnf.cn/news/6008.html

相关文章:

  • 江苏发改委回复:分时电价调整对储能项目的影响 源网荷储一体化能量管理系统储能EMS
  • 为什么企业建站或独立站选用WordPress
  • C程序的存储空间分配
  • 汉得 x 真味生物|H-ZERO PaaS项目启动,共启数字化新征程!
  • 可视化+智能补全:用Database Tool重塑数据库工作流
  • java 结合 FreeMarker 和 Docx4j 来生成包含图片的 docx 文件
  • 七、深入 Hive DDL:管理表、分区与洞察元数据
  • 邀请函|PostgreSQL培训认证报名正式开启
  • 演员评论家算法
  • LS-DYNA一箭穿心仿真分析
  • Oracle CDB 与 Non-CDB (NoCDB) 的区别
  • Linux(1)编译链接和gcc
  • typedef unsigned short uint16_t; typedef unsigned int uint32_t;
  • Lin4neuro 系统详解
  • Qt应用程序启动时的一些思路:从单实例到性能优化的处理方案
  • zabbix最新版本7.2超级详细安装部署(一)
  • VS Code怎么设置python SDK路径
  • 理解计算机系统_并发编程(5)_基于线程的并发(二):线程api和基于线程的并发服务器
  • Ascend的aclgraph(六)AclConcreteGraph
  • 技术并不能产生一个好的产品
  • solidwors插件 开发————仙盟创梦IDE
  • # YOLOv3:基于 PyTorch 的目标检测模型实现
  • 2.7/Q2,Charls最新文章解读
  • 北三短报文数传终端:筑牢水利防汛“智慧防线”,守护江河安澜
  • 构建你的第一个简单AI助手 - 入门实践
  • LangSmith 基本使用教程
  • 大疆无人机
  • 黑马k8s(五)
  • 面试题总结
  • 实景三维建模软件应用场景(众趣科技实景三维建模)