首页 > 其他分享 >vite 虚拟模块初识

vite 虚拟模块初识

时间:2024-11-13 15:34:12浏览次数:1  
标签:msg1 msg2 初识 虚拟 module 模块 const vite

介绍:
Vite 中的虚拟模块 Vite 是一个现代化的构建工具,旨在通过利用浏览器原生 ES 模块的可用性以及使用编译为原生语言编写的 JavaScript 工具来解决一些问题。
用途:
1. 自动生成路由配置: 在一些前端框架(如 Vue 和 React)中,虚拟模块可以用来动态生成路由配置。通常,我们需要手动维护路由表,但使用虚拟模块,你可以根据项目文件结构自动生成路由配置。这样,开发者无需手动添加路由,可以专注于开发应用功能。
2. 提供动态数据层: 虚拟模块可以在构建时根据不同环境或配置动态生成应用所需的数据。例如,你可以根据环境变量或配置文件生成数据访问接口。这种灵活性使得你可以轻松切换数据层,而不需要修改源代码。
3. 优化代码拆分和按需加载: 通过虚拟模块技术,你可以更轻松地实现代码拆分和按需加载。开发者可以根据需要动态生成模块,从而优化应用性能和加载时间。这对于大型应用或需要快速加载的单页应用非常有用。
4. 集成第三方服务: 虚拟模块可以用于集成第三方服务,例如 API 调用、数据分析等。通过虚拟模块,你可以将这些服务封装为可重用的模块,方便集成和维护。

使用:
新建个文件叫visualModule.ts

内容如下:
创建一个虚拟模块:

export default function myPlugin() {
  const ModelId = "virtual:my-test-module";
  /**
   * 你可以使用\0,也可以不使用\0来创建一个虚拟模块的名称,这个名称外部使用的时候是:
   *  import { msg1, msg2 } from "virtual:my-test-module";这样访问
   * 他的作用是 告诉rollup,这是一个虚拟模块,而不是一个文件。
   * 这是为了避免与生态系统中的其他插件发生冲突
   */
  const resolveModuleId = "\0" + "MyTestModule";

  return {
    name: "my-test-module-plugin",
    resolveId(id) {
      if (id === ModelId) {
        return resolveModuleId;
      }
    },
    load(id) {
      if (id === resolveModuleId) {
        // 这里可以写任何代码,但是不能有 import 语句
        return `
              export const msg1 = ()=>"hello msg1"
              export const msg2 = "hello msg2"
            `;
      }
    },
  };
}

 

使用它:

import { msg1, msg2 } from "virtual:my-test-module";

console.log(msg1(), msg2);

输出返回:

'hello msg1' 'hello msg2'

标签:msg1,msg2,初识,虚拟,module,模块,const,vite
From: https://www.cnblogs.com/llcdbk/p/18544054

相关文章

  • 如何制作代购系统的用户管理模块
    在代购系统中,用户管理模块是核心功能之一,它负责处理用户的注册、登录、信息管理等关键操作。一个高效且安全的用户管理模块能够提升用户体验,保障用户数据的安全。本文将详细介绍如何制作一个代购系统的用户管理模块,包括前端界面设计、后端逻辑处理以及数据存储。系统设计用......
  • Java初识(一)
    运行机制:语言处理程序主要分为汇编程序,编译程序,解释程序效率(编译>解释)灵活性(编译<解释)可移植性(编译<解释)在解释方式下,翻译源程序时不生成独立的目标程序,而编译器则将源程序翻译成独立保存的目标程序Java解释型面向对象编程语言基于Java开发构建工具:Ant,Maven,Jekins应用服务......
  • 【轻量化】YOLOv8 更换骨干网络之 MobileNetv4 | 模块化加法!非 timm 包!
    之前咱们在这个文章中讲了timm包的加法,不少同学反馈要模块化的加法,那么这篇就讲解下模块化的加法,值得注意的是,这样改加载不了mobilebnetv4官方开源的权重了~论文地址:https://arxiv.org/pdf/2404.10518代码地址:https://github.com/tensorflow/models/blob/master/offic......
  • 在vite中配置并使用环境变量
    1、配置环境变量,注意要以“VITE“开头(1)在.env.development中配置环境变量VITE_APP_ENV=development2、在vue文件中使用<scriptsetuplang="ts">console.log('环境:',import.meta.env)</script>打印得结果:{"BASE_URL":"/",......
  • Python模块之manim (动画模块)
    模块作用简介:Python模块之manim(动画模块)官方英文帮助:https://docs.python.org/3/library/官方简体中文帮助:https://docs.python.org/zh-cn/3/library/manim官方:https://docs.manim.community/en/stable/installation.html必要操作:>>>frommanimimport*......
  • 【小程序】封装网络请求request模块
    一、封装request请求因为我把所有项目中的接口也封装到了一个文件中,所以我建了一个services的文件夹,在下面建了一个request.js在这个里面做了请求拦截器和响应拦截器,constapiConfig=require('../config/baseUrl.js');classhttpClient{prefixUrl='';const......
  • 快速了解电源模块的使用方法 BDB10-12W系列电源模块
    快速了解电源模块的使用方法BDB10-12W系列电源模块电源是整个电路可靠工作的核心部分。然而,由于电源电路的电流和发热量较大,容易出现故障。今天我为大家介绍一下电源模块的使用方法。BOSHDIA电源模块是将电源电路集成到一个很小的PCB板上,从而实现输出稳定电压和大电流的模块。......
  • 电力设备模块更换APP开发文档
    电力设备模块更换APP开发文档一、开发背景:根据公司指示,有一批设备要进行内置模块安装,同时设备信息要和新装的模块信息进行绑定,即在现场换装的过程中,要记录模块的信息(资产编码)与设备的信息(资产编码),通过信息上传后,到达主站,由后台人员进行信息绑定。前期,此项工作都是由施工人员对......
  • [这可能是最好的Spring教程!]Maven的模块管理——如何拆分大项目并且用parent继承保证
    问题的提出在软件开发中,我们为了减少软件的复杂度,是不会把所有的功能都塞进一个模块之中的,塞在一个模块之中对于软件的管理无疑是极其困难且复杂的。所以把一个项目拆分为模块无疑是一个好方法┌──────┐┌─......
  • 第六课 Python之模块
    一、模块的介绍(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句(2)python对象定义和python语句(3)模块让你能够有逻辑地组织你的python代码段。(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂(5)模块能定义函数,类和变量,模块里也能包含可执行的......