vue3+ts+vite项目使用 unplugin-auto-import (自动导入)

该项目是基于vite创建的 vue3 + ts + vue-router + pinia项目;

启动项目:

npm install
npm run dev

启动后遇到了以下问题:

问题1:

Component name "Person" should always be multi-word. eslint(vue/multi-word-component-names)
解释:组件名“Person”应该总是由多个单词组成(组件名 name: ‘Person’)

解决方法:
.eslintrc.cjs 中添加以下配置

rules: {
  'vue/multi-word-component-names': 'off'
}

问题2:

项目中会频繁引入使用 vue、vue-router、pinia 内的API, 如ref、reactive
使用自动引入插件进行全局引入即可

使用步骤:

  • 安装:npm i -D unplugin-auto-import
  • 修改 vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'

export default defineConfig({
  plugins: [
    // ... other
    AutoImport({
      imports: ['vue','vue-router', 'pinia'], // 自动引入的三方库
      dts: 'src/types/auto-import.d.ts', // 全局自动引入文件存放路径;不配置保存在根目录下;配置为false时将不会生成 auto-imports.d.ts 文件(不影响效果)
      eslintrc: {
        // 项目中使用了 eslint,那么虽然可以正常使用 API 了,但是 eslint 还是会报没有引入的报错。下面的配置可以处理这种情况
        enabled: true, // 会在根目录下自动生成 .eslintrc-auto-import.json 文件
      }
    })
  ]
})
  • .eslintrc.cjs 中使用自动生成的 .eslintrc-auto-import.json 文件
module.exports = {
  root: true,
  extends: [
     // ... other 配置
    './.eslintrc-auto-import.json'
  ],
}
  • ps: 我配置了后并没有效果,还是会报错如找不到名称“computed”。ts-plugin(2304),如下:
    在这里插入图片描述
    解决方法:tsconfig.json 里面配置如下:
"include": [
    "src/**/*.js",
    "src/**/*.ts",
    "src/**/*.tsx",
    "src/**/*.jsx",
    "src/**/*.vue",
    "./types/auto-imports.d.ts" // 和 AutoImport dts保持一致 引入即可
  ],

 
 
文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出!

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
unplugin-auto-import 是一个用于自动导入模块的 Vite 插件,可以帮助我们快速导入组件、函数、变量等等。以下是在 Vue 3 + TypeScript 项目使用 unplugin-auto-import 自定义导入路径的步骤: 1. 安装所需依赖: ```bash npm install -D vite-plugin-auto-import ``` 2. 在构建配置中添加插件,并配置自定义导入: ```javascript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' export default defineConfig({ plugins: [ vue(), AutoImport({ // 配置需要自动导入的模块 imports: [ { // 导入组件 path: 'vue', // 定义导入的名称 imports: ['defineComponent'], }, { // 导入自定义组件 path: '@/components/MyCustomComponent.vue', // 定义导入的名称 imports: ['MyCustomComponent'], }, { // 导入函数 path: 'lodash/debounce', // 定义导入的名称 imports: ['debounce'], }, { // 导入变量 path: '@/config', // 定义导入的名称 imports: ['appConfig'], }, ], }), ], }) ``` 3. 在代码中使用自定义导入的模块: ```vue <template> <MyCustomComponent /> </template> <script lang="ts"> import { defineComponent } from 'vue' import { debounce } from 'lodash' import { appConfig } from '@/config' import { MyCustomComponent } from '@/components/MyCustomComponent.vue' export default defineComponent({ components: { MyCustomComponent, }, data() { return { searchText: '', } }, methods: { search: debounce(() => { console.log('searchText:', this.searchText) }, 500), }, }) </script> ``` 注意:在使用 unplugin-auto-import 插件时,需要在 tsconfig.json 文件中开启 "esModuleInterop": true,以支持模块导入

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值