unplugin-auto-import的使用

这篇具有很好参考价值的文章主要介绍了unplugin-auto-import的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、unplugin-auto-import插件的解决的问题

unplugin-auto-import 这个插件是为了解决在开发中的导入问题,比如经常不清楚相对路径的问题,这个插件就是解决这个问题

这个插件会在根目录生成一个auto-import.d.ts,这个文件会将所有的插件导入到global中,这样在使用的时候直接就可以使用了

2、插件安装

在终端执行命令

npm i -D unplugin-auto-import
unplugin-auto-import,前端学习,vue.js,javascript,前端,Powered by 金山文档

配置文件vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// import AutoImport from "@vitejs/plugin-vue"
import AutoImport from 'unplugin-auto-import/vite'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
      vue(),
      AutoImport({
        imports:["vue","vue-router"],
        dts:'src/auto-import.d.ts'    // 路径下自动生成文件夹存放全局指令
      }),

  ],
})

这样生成的auto-import.d.ts 在设置的目录下

// Generated by 'unplugin-auto-import'
export {}
declare global {
  const EffectScope: typeof import('vue')['EffectScope']
  const computed: typeof import('vue')['computed']
  const createApp: typeof import('vue')['createApp']
  const customRef: typeof import('vue')['customRef']
  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
  const defineComponent: typeof import('vue')['defineComponent']
  const effectScope: typeof import('vue')['effectScope']
  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
  const getCurrentScope: typeof import('vue')['getCurrentScope']
  const h: typeof import('vue')['h']
  const inject: typeof import('vue')['inject']
  const isProxy: typeof import('vue')['isProxy']
  const isReactive: typeof import('vue')['isReactive']
  const isReadonly: typeof import('vue')['isReadonly']
  const isRef: typeof import('vue')['isRef']
  const markRaw: typeof import('vue')['markRaw']
  const nextTick: typeof import('vue')['nextTick']
  const onActivated: typeof import('vue')['onActivated']
  const onBeforeMount: typeof import('vue')['onBeforeMount']
  const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
  const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
  const onDeactivated: typeof import('vue')['onDeactivated']
  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
  const onMounted: typeof import('vue')['onMounted']
  const onRenderTracked: typeof import('vue')['onRenderTracked']
  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
  const onScopeDispose: typeof import('vue')['onScopeDispose']
  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
  const onUnmounted: typeof import('vue')['onUnmounted']
  const onUpdated: typeof import('vue')['onUpdated']
  const provide: typeof import('vue')['provide']
  const reactive: typeof import('vue')['reactive']
  const readonly: typeof import('vue')['readonly']
  const ref: typeof import('vue')['ref']
  const resolveComponent: typeof import('vue')['resolveComponent']
  const resolveDirective: typeof import('vue')['resolveDirective']
  const shallowReactive: typeof import('vue')['shallowReactive']
  const shallowReadonly: typeof import('vue')['shallowReadonly']
  const shallowRef: typeof import('vue')['shallowRef']
  const toRaw: typeof import('vue')['toRaw']
  const toRef: typeof import('vue')['toRef']
  const toRefs: typeof import('vue')['toRefs']
  const triggerRef: typeof import('vue')['triggerRef']
  const unref: typeof import('vue')['unref']
  const useAttrs: typeof import('vue')['useAttrs']
  const useCssModule: typeof import('vue')['useCssModule']
  const useCssVars: typeof import('vue')['useCssVars']
  const useLink: typeof import('vue-router')['useLink']
  const useRoute: typeof import('vue-router')['useRoute']
  const useRouter: typeof import('vue-router')['useRouter']
  const useSlots: typeof import('vue')['useSlots']
  const watch: typeof import('vue')['watch']
  const watchEffect: typeof import('vue')['watchEffect']
  const watchPostEffect: typeof import('vue')['watchPostEffect']
  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
}

可以看到基本上所有的可能使用的都生成出来了

注意:上面配置完毕dts后可能并不会自动生成auto-import.d.ts文件,可以重新运行一下项目,或者关闭编辑器重新打开运行即可。

3、测试

在使用的时候会有一个hook,检测到使用的对象是global,则直接导入

import Home from "../components/Home.vue";
import Page1 from "../components/Page1.vue";
import {createRouter, createWebHistory} from "vue-router";
import testAuto from "../components/TestAuto.vue";



const router = createRouter({
    history: createWebHistory(),
    routes :[
        {path: "/home", component: Home},
        {path: "/page1", component: Page1},
        {path: "/page2", component: testAuto}
    ]
});
export  default router;

4、总结

作为一个刚刚入手的后端同学来说,这些插件还是不太熟悉

查了下d.ts的概念

d.ts大部分编辑器能识别d.ts文件,当你写js、ts代码的时候给你智能提示

.d.ts可以理解成API版本的代码, 只包含基本的类, 函数, 变量类型, 参数类型, 返回值等,用于给编译器以及IDE识别是否符合API定义类型,发布之后就可以看不到了。文章来源地址https://www.toymoban.com/news/detail-804124.html

到了这里,关于unplugin-auto-import的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】手把手教你使用 PyCharm 连接 Auto DL 远程服务器

    文章性质: 实操记录 💻 主要内容: 主要记录了如何租用 Auto DL 服务器,以及如何在 PyCharm 中连接远程服务器。 相关文档: 如何使用 Auto DL 远程服务器连接 PyCharm 运行代码 - 知乎 冷知识+1: 小伙伴们不经意的 点赞 👍🏻 与 收藏 ✨ 可以让作者更有创作动力!  目录 前言

    2024年04月25日
    浏览(84)
  • 【深度学习】手把手教你使用 PyCharm 在 Auto DL 远程服务器上运行代码

    文章性质: 实操记录 💻 主要内容: 主要记录了如何使用 PyCharm 在 Auto DL 上运行代码。 相关文档: 使用 PyCharm 在 Auto DL 远程服务器上运行代码 - 知乎 相关博客: 使用 PyCharm 连接远程服务器(AutoDL)训练 YOLOv5 - CSDN博客  冷知识+1: 小伙伴们不经意的 点赞 👍🏻 与 收藏 ✨

    2024年03月21日
    浏览(70)
  • 手机自动化测试工具Auto.js学习使用(附一个自动刷抖音类短视频的demo)

    Auto.js Pro自动化工作流JavaScript IDE,这个IDE是安装在手机上的,书写JavaScript IDE代码的,同时也是可以运行,和打包JavaScript 程序。 Auto.js官网 官网直接下载auto.js,安装即可,安装后花48开会员 搜索安装如下插件 手机电脑要确保连接在同一个wifi网络 手机的auto.js确保打开如下功

    2024年02月09日
    浏览(59)
  • 解决:使用前端路由时的报错Cannot destructure property ‘options’ of ‘(0 , vue__WEBPACK_IMPORTED_MODULE_1__.inject)

    使用前端路由时,代码无误,但是页面不显示任何东西,控制台报错: Cannot destructure property ‘options’ of ‘(0 , vue__WEBPACK_IMPORTED_MODULE_1__.inject)(…)’ as it is undefined. step1: step3 最终就可以得到期望的效果啦

    2024年02月16日
    浏览(81)
  • 前端Vue中import和require的用法分析

    在前端开发中,使用Vue框架进行项目开发是非常常见的。在Vue项目中,我们经常需要引入外部的模块或文件,这时候就会用到 import 和 require 这两个。本文将详细分析它们的用法,并提供具体的代码实例和解释。 在ES6中, import 是一种用于导入模块的语法。它可以帮助

    2024年02月11日
    浏览(37)
  • neo4j学习笔记:使用neo4j-admin import命令批量处理CSV文件

    neo4j-admin是管理neo4j DBMS的主要工具之一,是一种命令行工具。 neo4j admin命令需与当前neo4j用户一致。 (1)位置: 以neo4j desktop为例,neo4j-admin在当前project下活动的database的dbms文件夹下的bin文件夹中。 (2)启动方式: 打开当前project的terminal; 进入bin文件夹:执行cd bin,此时,

    2024年02月01日
    浏览(51)
  • Auto-GPT 学习笔记

    Auto-GPT 是一个基于 GPT-4 的自主智能体实验项目。 它展示了大规模语言模型的规划、记忆和工具使用能力。 Auto-GPT 的目标是实现一个完全自主的 AI 代理。 GitHub 仓库 规划(Planning) 使用强化学习策略进行多跳思考。 通过角色扮演实现自省。 提供完整的上下文,例如从记忆中获取

    2024年02月11日
    浏览(41)
  • 【C++基础】auto关键字(C++11)(auto的使用细则;auto不能推导的场景;auto的使用场景;基于范围的for循环)

    在早期C/C++( C++98 )中auto的含义是:使用auto修饰的变量,是具有 自动存储器的局部变量 ,但遗憾的是一直没有人去使用它。因为在函数内定义的变量默认就是局部变量。 C++11 中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的 类型指示

    2023年04月13日
    浏览(45)
  • 机器学习:自动编码器Auto-encoder

    不用标注数据就能学习的任务,比如Bert之类的。但最早的方法是Auto-encoder。 encoder输出的向量,被decoder还原的图片,让输出的图片与输入的图片越接近越好。 将原始的高维向量变成低维向量,将该新的特征用于下游任务。 相关的类似方法: PCA: youtu.be/iwh5o_M4BNU t-SNE: yout

    2024年02月14日
    浏览(52)
  • Auto_GPT:如何使用Auto-GPT、安装、开发

    Auto-GPT是一款开源Python应用程序,它利用OpenAI的GPT-4大型语言模型自动完成复杂的多步骤项目和任务。 这是一个强大的工具,能够在你按下回车键时生成高质量的书面内容。与ChatGPT不同,Auto-GPT可以搜索互联网上的信息、收集数据并完成任务。 你可以把它视为你个人的助手,

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包