iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >从0搭建Vue3组件库之如何使用Vite打包组件库
  • 418
分享到

从0搭建Vue3组件库之如何使用Vite打包组件库

Vite打包组件库vue3Vite打包组件库 2023-03-07 17:03:58 418人浏览 八月长安
摘要

目录打包配置声明文件本篇文章将介绍如何使用 vite 打包我们的组件库,同时告诉大家如何使用插件让打包后的文件自动生成声明文件(*.d.ts) 打包配置 vite 专门提供了库模式的

本篇文章将介绍如何使用 vite 打包我们的组件库,同时告诉大家如何使用插件让打包后的文件自动生成声明文件(*.d.ts)

打包配置

vite 专门提供了库模式的打包方式,配置其实非常简单,首先全局安装 vite 以及@vitejs/plugin-Vue

pnpm add vite @vitejs/plugin-vue -D -w

在 components 文件下新建vite.config.ts配置文件

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
export default defineConfig({
  build: {
    //打包后文件目录
    outDir: "es",
    //压缩
    minify: false,
    rollupOptions: {
      //忽略打包vue文件
      external: ["vue"],
      //input: ["index.ts"],
      output: {
        globals: {
          vue: "Vue",
        },
        dir: "dist",
      },
    },
    lib: {
      entry: "./index.ts",
      name: "easyest",
      fileName: "easyest",
      fORMats: ["es", "umd", "cjs"],
    },
  },
  plugins: [vue()],
});

然后在 components/package.JSON 添加打包命令scripts

 "scripts": {
    "build": "vite build"
  },

执行pnpm run build

同时生成了打包后的 dist 文件

但是这种打包方式最终会将整个组件库打包到一个文件中,并且样式文件也不能按需加载,所以我们需要修改一下配置让打包后的结构和我们开发的结构一致,如下配置我们将打包后的文件放入 easyest 目录下,因为后续发布组件库的名字就是 easyest,当然这个命名大家可以随意

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
export default defineConfig({
  build: {
    //打包文件目录
    outDir: "es",
    //压缩
    //minify: false,
    rollupOptions: {
      //忽略打包vue文件
      external: ["vue"],
      input: ["index.ts"],
      output: [
        {
          //打包格式
          format: "es",
          //打包后文件名
          entryFileNames: "[name].mjs",
          //让打包目录和我们目录对应
          preserveModules: true,
          exports: "named",
          //配置打包根目录
          dir: "../easyest/es",
        },
        {
          //打包格式
          format: "cjs",
          //打包后文件名
          entryFileNames: "[name].js",
          //让打包目录和我们目录对应
          preserveModules: true,
          exports: "named",
          //配置打包根目录
          dir: "../easyest/lib",
        },
      ],
    },
    lib: {
      entry: "./index.ts",
    },
  },
  plugins: [vue()],
});

执行pnpm run build,此时生成打包后的文件目录如下

但是此时的所有样式文件还是会统一打包到 style.CSS 中,还是不能进行样式的按需加载,所以接下来我们将让 vite 不打包样式文件,样式文件后续单独进行打包。

声明文件

到这里其实打包的组件库只能给 js 项目使用,在 ts 项目下运行会出现一些错误,而且使用的时候还会失去代码提示功能,这样的话我们就失去了用 ts 开发组件库的意义了。所以我们需要在打包的库里加入声明文件(.d.ts)。

安装vite-plugin-dts,注意版本最好一致

pnpm add vite-plugin-dts@1.4.1 -D -w

vite.config.ts引入,注意这里同时添加了组件命名插件DefineOptions(上篇文章提到过,注意这个要写在dts后面,源码中可能有误)

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import dts from "vite-plugin-dts";
import DefineOptions from "unplugin-vue-define-options/vite";
export default defineConfig({
  plugins: [
    vue(),
    dts({
      entryRoot: "./src",
      outputDir: ["../easyest/es/src", "../easyest/lib/src"],
      //指定使用的tsconfig.json为我们整个项目根目录下,如果不配置,你也可以在components下新建tsconfig.json
      tsConfigFilePath: "../../tsconfig.json",
    }),
    DefineOptions(),
 
  ],
});

再次打包就会发现打包后文件中出现了我们需要的声明文件

其实现在大部分前端构建脚手架都支持 esmodule 了,而 esmodule 本身就支持按需加载,所以说组件库打包后的 es 格式它本身自带 treeShaking,而不需要额外配置按需引入。后面我们要做的则是让样式文件也支持按需引入,敬请期待。

关注公众号 web前端进阶 查看完整教程

本篇文章代码地址 如何使用Vite打包组件库,hxd们star一下

到此这篇关于从0搭建vue3组件库之如何使用Vite打包组件库的文章就介绍到这了,更多相关Vite打包组件库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 从0搭建Vue3组件库之如何使用Vite打包组件库

本文链接: https://www.lsjlt.com/news/198893.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 从0搭建Vue3组件库之如何使用Vite打包组件库
    目录打包配置声明文件本篇文章将介绍如何使用 vite 打包我们的组件库,同时告诉大家如何使用插件让打包后的文件自动生成声明文件(*.d.ts) 打包配置 vite 专门提供了库模式的...
    99+
    2023-03-07
    Vite打包组件库 vue3 Vite打包组件库
  • Vue3从0搭建Vite打包组件库使用详解
    目录打包配置声明文件打包配置 本篇文章将介绍如何使用 vite 打包我们的组件库,同时告诉大家如何使用插件让打包后的文件自动生成声明文件(*.d.ts) vite 专门提供了库模式...
    99+
    2023-02-17
    Vue3搭建Vite打包组件库 Vue3搭建Vite
  • vue3使用Vite打包组件库从0搭建过程详解
    目录手动搭建一个用于测试组件库组件 Vue3 项目初始化 ts搭建一个基于 vite 的 vue3 项目安装插件配置 vite.config.ts新建入口 html 文件app.vu...
    99+
    2023-02-17
    vue3 Vite打包组件库搭建 vue3 Vite
  • 从0搭建vue3组件库Input组件
    目录基础用法禁用状态尺寸继承原生 input 属性可清空密码框 show-password带 Icon 的输入框文本域可自适应高度文本域复合型输入框总结源码地址本篇文章将为我们的组件...
    99+
    2022-11-16
    vue3组件库Input组件 vue3组件库 vue3 Input组件 从0搭建vue3组件库
  • 从0搭建Vue3组件库如何使用 glup 打包组件库并实现按需加载
    目录使用 glup 打包组件库并实现按需加载自动按需引入插件删除打包文件使用 gulpgulp 打包样式打包组件使用 glup 打包组件库并实现按需加载 当我们使用 Vite 库模式...
    99+
    2023-03-23
    glup 打包组件库按需加载 vue3 glup 打包 vue打包组件库
  • Vue3怎么使用Vite打包组件库
    本文小编为大家详细介绍“Vue3怎么使用Vite打包组件库”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3怎么使用Vite打包组件库”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。打包配置vite 专门提供...
    99+
    2023-07-05
  • Vue3从0搭建Monorepo项目组件库
    目录引言什么是 Monorepo为什么要用 pnpmpnpm 的使用安装初始化项目包管理引言 本篇文章是从0搭建Vue3组件库系列文章第二篇,本篇文章将带领大家使用pnpm搭建一个...
    99+
    2023-02-17
    Vue3搭建Monorepo组件库 Vue3搭建Monorepo
  • Vue3如何搭建Monorepo项目组件库
    什么是 Monorepo其实很简单,就是一个代码库里包含很多的项目,而这些项目虽然是相关联的,但是在逻辑上是独立的,可以由不同人或者团队来维护为什么要用 pnpm对于 Monorepo 项目,使用 pnpm 进行包管理非常方便。因为对于我们...
    99+
    2023-05-20
    Vue3 monorepo
  • Vite + React从零开始搭建一个开源组件库
    目录前言目标搭建开发环境️生成模板CSS预处理器eslint组件库编译⚡️vite的打包配置⚡️自动生成ts类型文件⚡️样式懒加载与全量加载文档❤️npm 发布与发布前的测试测试前言...
    99+
    2024-04-02
  • 怎么使用Vite+React搭建一个开源组件库
    今天小编给大家分享一下怎么使用Vite+React搭建一个开源组件库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。目标开发环...
    99+
    2023-07-02
  • vue3组件库Shake抖动组件搭建过程详解
    目录正文CSS样式组件逻辑单元测试导出打包发布正文 先看下效果 其实就是个抖动效果组件,实现起来也非常简单。之所以做这样一个组件是为了后面写Form表单的时候会用到它做一个规则校验...
    99+
    2022-11-13
    vue3 Shake抖动组件库搭建 vue3 Shake
  • 如何使用Vue3.2+Vite2.7从0快速打造一个UI组件库
    目录1. 前言2. 使用Vite搭建官网2.1 创建项目2.1.1. 全局安装vite(这里我装的时候是2.7.2)2.1.2. 构建一个vue模板(项目名可以改成自己的名字)2.1...
    99+
    2024-04-02
  • Vue3如何使用glup打包组件库并实现按需加载
    这篇文章主要介绍“Vue3如何使用glup打包组件库并实现按需加载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue3如何使用glup打包组件库并实现按需加载”文章能帮助大家解决问题。使用 glu...
    99+
    2023-07-06
  • 如何搭建react+ts组件库
    本篇内容介绍了“如何搭建react+ts组件库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!整体需求react组件库,取名r-ui,能够导出...
    99+
    2023-06-30
  • 如何从零开始搭建一套ui组件库
    本篇内容介绍了“如何从零开始搭建一套ui组件库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 环境准备我们在编写我们组件库的组件前,首先...
    99+
    2023-07-06
  • Vue3之Teleport组件如何使用
    这篇文章主要介绍了Vue3之Teleport组件如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3之Teleport组件如何使用文章都会有所收获,下面我们一起来看看吧。Teleport 组件解决的问...
    99+
    2023-07-06
  • Vue3组件库的环境配置搭建过程
    目录搭建一个基于 vite 的 vue3 项目安装插件配置 vite.config.ts新建入口 html 文件app.vue入口 main.ts配置脚本启动项目本篇文章将在项目中引...
    99+
    2023-03-03
    Vue3 组件库配置 Vue3 组件库 vue3环境配置
  • 如何使用vue3+TS实现简易组件库
    这篇文章主要为大家展示了“如何使用vue3+TS实现简易组件库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用vue3+TS实现简易组件库”这篇文章吧。前置首先下载vue-cli,搭建我们...
    99+
    2023-06-29
  • Vue3怎么使用glup打包组件库并实现按需加载
    这篇文章主要介绍“Vue3怎么使用glup打包组件库并实现按需加载”,在日常操作中,相信很多人在Vue3怎么使用glup打包组件库并实现按需加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3怎么使用g...
    99+
    2023-07-05
  • 如何用DevUI搭建自己的Angular组件库
    目录前言创建组件库关键配置修改目录布局调整库构建关键配置开发一个Alert组件组件功能介绍组件结构分解定义输入输出定义布局测试Alert组件开发态引用组件编写单元测试发布组件前言 作...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作