vite插件 unplugin-auto-import 自动导入API

 unplugin-auto-import  插件可以自动导入API,它可以帮助开发者减少手动导入的重复代码,提高开发效率,并支持 Vue、Pinia、Vue Router 等常用库的自动导入。

使用该插件无需手动写 import 语句,直接使用 refreactiveonMounted 等 Composition API,该插件还支持Pinia和 vue ruter 和axios等常用库,也支持自定义的函数

下载插件

npm地址

pnpm i -D unplugin-auto-import

配置插件

vite.config.ts

import AutoImport from "unplugin-auto-import/vite";

export default defineConfig({
  plugins: [
    AutoImport({
      imports: ["vue", "vue-router", "pinia"], // 自动导入的库
      dts: "src/auto-imports.d.ts", // 生成类型声明文件,该文件自动生成
      dirs: ["src/utils/commonFn.ts"], // 自动导入该目录下的函数
      eslintrc: {
          enabled: true, // 生成 ESLint 配置
          filepath: './.eslintrc-auto-import.json', //该文件也是自动成功
        },
    }),
  ],
});

组件中使用

配置成功之后在组件中使用无需单独引入

isObject函数位于 src ->utils -> commonFn 下

export function isObject(val) {
  return typeof val === 'object' && val !== null
}
<template>
  <div class="v-model-container">
    <label>输入框:</label>
    <input v-model="inputValue" />
  </div>
</template>
<script setup lang="ts">
// import { ref } from 'vue'
// import {isObject} from "@/utils/commonFn";

const inputValue = ref('text text')
console.log(isObject(inputValue.value))
</script>

解决eslint检查报错

在.eslintrc.cjs 中配置

module.exports = {
   ......

  /* 继承已有的规则 */
  extends: [
    "./.eslintrc-auto-import.json", // 必须放在最前面
    "eslint:recommended",
    "plugin:vue/vue3-essential",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
  ],
},

### 配置 `unplugin-auto-import` 在 Vite 中的用法 为了在 Vite 项目中使用 `unplugin-auto-import` 插件,可以按照以下方法进行配置。此插件的主要功能是从指定模块自动导入 API 或函数到全局范围,从而减少手动引入的工作量。 #### 安装依赖项 首先,在终端执行以下命令安装必要的包: ```bash npm install unplugin-auto-import --save-dev ``` 或者如果使用的是 Yarn,则运行: ```bash yarn add unplugin-auto-import --dev ``` #### 修改 `vite.config.ts` 接着,在项目的根目录下找到或创建 `vite.config.ts` 文件,并将其更新为支持 `unplugin-auto-import` 的配置。以下是完整的配置示例[^1]: ```typescript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import AutoImport from 'unplugin-auto-import/vite'; export default defineConfig({ plugins: [ vue(), AutoImport({ imports: ['vue'], // 自动导入 Vue 提供的相关函数 dts: './auto-imports.d.ts' // 自动生成声明文件路径 }) ], build: { target: 'esnext', outDir: 'dist' } }); ``` 上述代码片段通过 `AutoImport()` 方法指定了需要自动导入的内容以及生成对应的 TypeScript 声明文件的位置。 #### 关于 ESM 和 CJS 兼容性问题 当涉及到 CommonJS 模块时,可能会遇到无法正确识别默认导出的情况。此时可以通过调整 tsconfig.json 设置来解决兼容性问题。具体来说,将 `compilerOptions.esModuleInterop` 设定为 `true` 可以帮助处理此类情况[^2]。例如: ```json { "compilerOptions": { "esModuleInterop": true, ... } } ``` 这样做的目的是让 TypeScript 编译器能够更好地桥接 ES Modules 和 CommonJS 模块之间的差异。 #### 测试效果 完成以上步骤后重新启动开发服务器并尝试访问组件中的某些常用 Vue 函数(如 `ref`, `reactive`),无需显式地从 `'vue'` 导入它们即可正常使用。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值