首页 > 其他分享 >自动引入神器unplugin-auto-import,和满屏的import说拜拜

自动引入神器unplugin-auto-import,和满屏的import说拜拜

时间:2024-09-24 15:56:02浏览次数:12  
标签:src vue auto 满屏 unplugin router import


目录

  • 简介
  • 功能
  • 安装
  • 在 Vite 中使用
  • 在 Webpack 中使用
  • 配置选项

简介

unplugin-auto-import 是一个现代的自动导入插件,它支持多种构建工具(例如 Vite 和 Webpack),可以根据你在代码中使用的标识符自动生成相应的 import 语句,从而减少重复代码,简化开发过程。

官方仓库

功能

  • 自动导入常用库的 API,如 vuevue-router@vueuse/core 等。
  • 支持自定义目录中的函数自动导入。
  • 生成类型声明文件(适用于 TypeScript)。
  • 生成 ESLint 配置文件,避免未定义变量错误。

安装

可以使用 npm 或 yarn 安装 unplugin-auto-import

# npm
npm install unplugin-auto-import

# yarn
yarn add unplugin-auto-import

在 Vite 中使用

  1. 安装插件
    安装 unplugin-auto-import 插件:
npm install unplugin-auto-import
  1. 配置插件
    vite.config.ts 文件中添加 unplugin-auto-import 配置:
// vite.config.ts

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-router", "@vueuse/core"],
      dirs: ["./src/composables", "./src/utils"],
      dts: "./src/auto-imports.d.ts",
      eslintrc: {
        enabled: true,
        filepath: "./.eslintrc-auto-import.json",
        globalsPropValue: true,
      },
    }),
  ],
});
  1. 示例代码
    配置后,你可以直接在组件中使用 vuevue-router 等库的 API,而无需手动 import
<!-- src/components/ExampleComponent.vue -->

<template>
  <div>{{ message }}</div>
  <button @click="updateMessage">Update</button>
</template>

<script setup>
const message = ref("Hello, Vite!");
const updateMessage = () => {
  message.value = "Updated Message!";
};
</script>

在 Webpack 中使用

  1. 安装插件
    安装 unplugin-auto-import@unplugin/webpack
npm install unplugin-auto-import @unplugin/webpack
  1. 配置插件
    webpack.config.js 中配置 unplugin-auto-import 插件:
// webpack.config.js

const AutoImport = require("unplugin-auto-import/webpack");
const path = require("path");

module.exports = {
  // 其他配置
  plugins: [
    AutoImport({
      imports: ["vue", "vue-router", "@vueuse/core"],
      dirs: [
        path.resolve(__dirname, "./src/composables"),
        path.resolve(__dirname, "./src/utils"),
      ],
      dts: path.resolve(__dirname, "./src/auto-imports.d.ts"),
      eslintrc: {
        enabled: true,
        filepath: path.resolve(__dirname, "./.eslintrc-auto-import.json"),
        globalsPropValue: true,
      },
    }),
  ],
};
  1. 示例代码
    在使用了自动导入功能后,你可以在组件中直接使用 API:
// src/main.js

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";

const app = createApp(App);
app.use(router);
app.mount("#app");

配置选项

unplugin-auto-import 提供了丰富的配置选项:

  • **imports**: 自动导入的库列表。
  • **dirs**: 自动导入的目录列表。
  • **dts**: 生成的类型声明文件路径。
  • **eslintrc**: 生成的 ESLint 配置文件选项。

示例配置

AutoImport({
  imports: ["vue", "vue-router", "@vueuse/core"],
  dirs: ["./src/composables", "./src/utils"],
  dts: "./src/auto-imports.d.ts",
  eslintrc: {
    enabled: true,
    filepath: "./.eslintrc-auto-import.json",
    globalsPropValue: true,
  },
});
  • imports: 你希望自动导入的库,如 vuevue-router@vueuse/core 等。
  • dirs: 包含你项目中自定义模块的目录。
  • dts: 如果你使用 TypeScript,这会生成一个 .d.ts 文件,用于自动导入的类型声明。
  • eslintrc: 配置 ESLint,避免因自动导入导致的未定义变量错误。

结论

通过 unplugin-auto-import,你可以显著简化项目中的 import 管理,提升开发效率。无论是 Vite 还是 Webpack,配置都十分简单并且灵活,可以根据具体需求进行定制。


标签:src,vue,auto,满屏,unplugin,router,import
From: https://blog.51cto.com/u_17032682/12100476

相关文章

  • 如何在 WordPress 网站中使用 Importmap
    我一直在尝试开发一个基本的wordpress经典主题,无需构建步骤,我可以将其用作入门主题,以便将来开发客户端站点。在撰写本文时,我没有做任何自由职业,因为我正在为一家网络机构工作,并且我们正在构建的网站都涉及构建步骤。所以我想写一个关于如何在wordpress主题中使用importmap的......
  • @import (beandefinition register)
    https://www.jb51.net/program/314486bls.htm         ......
  • Error while loading conda entry point: anaconda-cloud-auth (cannot import name
    这个错误是由于conda环境中的某些插件或依赖损坏,特别是在conda.plugins.types模块中无法找到ChannelAuthBase。这通常发生在conda安装不完整、升级失败或插件包损坏的情况下。可能的解决方案:1.更新conda首先尝试更新conda,这可以修复一些与依赖相关的问题:condaupdatecon......
  • Python3+requests搭建接口自动化测试框架_python3 import requests
    框架理念:使用json文件编写测试用例,建一个脚本循环读取测试用例并执行,然后对比返回的接口和用例中的期望结果。将测试结果写入到一个excel表格中生成测试报告,最后使用发送邮件功能将测试报告发送到指定邮箱。其中对所有公共方法进行封装并放在common公共文件目录下。  ......
  • 16 Python的包以及import和from的使用
    本篇是Python系列教程第16篇,更多内容敬请访问我的Python合集1创建包创建文件夹:首先你需要创建一个文件夹作为包的容器。添加__init__.py文件:在这个文件夹内需要有一个特殊的文件叫做__init__.py。这个文件可以为空,也可以包含初始化代码。它的存在标志着这个目录可......
  • import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from ‘axios
    在 importaxios,{AxiosInstance,AxiosRequestConfig,AxiosResponse}from'axios';  中: 不加花括号(只导入axios): -你只能使用默认导入的 axios  对象本身来进行HTTP请求,例如 axios.get('/api/endpoint') 。-没有导入特定的类型定义,在使用相关对象......
  • 响应式单位rpx及搭配UI产品工具和@import导入css样式和scss变量与用法static目录以及p
    1.响应式单位rpx及搭配UI产品工具1.对于rpx的认知和用法以及对于px的区别我们可以去官网先了解一下我们的rpx用法和注意以及与px的区别。链接:页面样式与布局|uni-app官网(dcloud.net.cn)我平时使用的px是我们的屏幕像素的单位,我们在一个页面创建一个view组件,并且给其在......
  • css中的响应式单位rpx,vue3中@import的导入
    尺寸单位,px和rpx对比px单位像素是图像的基本采样单位,它不是一个确定的物理量,不同的设备,其图像基本单位是不同的,比如显示器的点距,可以认为是显示器的物理像素rpx单位可以根据屏幕宽度进行自适应。rpx其实是微信对于rem的一种应用的规定,或者说一种设计的方案,官方上规定屏幕......
  • @Import注解 -【Spring底层原理】
    通过在配置类上使用@Import注解,将User给注入进容器中,运行启动类,可以看到容器中有User对象:image-20210226164625069【2】导入ImportSelector的实现类导入ImportSelector的实现类需要实现ImportSelector类,自定义逻辑返回需要导入的组件,返回的字符串数组即是要注入的组件,添加修改......
  • 第三节:SASS 导入@import
    SASS的艺术:掌握@import的高级用法在当今的前端开发领域,SASS作为一种强大的CSS预处理器,已经成为了许多开发者提升工作效率的必备工具。本文将深入探讨SASS中的@import指令,带你了解如何高效地组织和管理样式文件,以及如何利用@import实现模块化编程。@import的......