Vue3组件库框架搭建example环境的详细教程

目录
  • 1 搭建 example 开发环境
    • 1.1 创建 example 项目
    • 1.2 修改 package.json
    • 1.3 修改 vite 配置文件
    • 1.4 多环境支持
    • 1.5 测试启动服务
  • 2 测试 foo 组件
    • 2.1 安装依赖
    • 2.2 引入组件库
    • 2.3 使用组件
    • 2.4 运行查看效果
  • 3 example 打包构建

前面用了大量篇幅介绍组件库的开发环境搭建,包括:创建组件、创建组件库入口、组件库样式架构、组件库公共包,做了一大堆工作,还不能预览示例组件 foo,本文便搭建 example 开发环境和打包构建,并在 example 中使用组件库。

1 搭建 example 开发环境

1.1 创建 example 项目

example 本质上就是一个 vite3 + vue3 的项目,可以通过 vite 来创建,也可以通过优雅哥编写的 yyg-cli 来创建一个全家桶项目,甚至可以手动搭建。后面程序员优雅哥会用 example 来实现一个完整的企业级中后台管理项目,用它来驱动组件库的组件开发。

简单一些,这里就使用 vite 来创建 example 项目。从命令行中进入 example 目录,运行:

pnpm create vite
  • 输入该命令后,稍等一会儿会提示输入 project name,由于咱们已经创建 example 目录,这里输入一个点(.)即可;
  • framework 选择 Vue;
  • variant 选择 TypeScript。

1.2 修改 package.json

生成项目后,先不要着急安装依赖,因为有些依赖已经在 workspace-root 中安装了,在这个子模块中便无需重复安装。

修改 package.json 的 name、dependencies、devDependencies,修改后内容如下:

{
  "name": "@yyg-demo-ui/example",
  ...
  "dependencies": {
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^3.2.0",
    "typescript": "^4.6.4"
  }
}

1.3 修改 vite 配置文件

自动生成的 vite.config.ts 文件只配置了 vue 插件,咱需要对其进行其他配置,如 TSX 插件、ESLint 插件、路径别名等:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import eslint from 'vite-plugin-eslint'
import vueJsx from '@vitejs/plugin-vue-jsx'

export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    eslint()
  ],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  },
  server: {
    port: 3000,
    cors: true,
    proxy: {}
  },
  build: {
    outDir: path.resolve(__dirname, '../dist')
  }
})

1.4 多环境支持

这一步非必须,只是为了后面的项目开发做准备的。多环境支持在之前的文章中已经详细讲过,各位可以翻阅之前的文章,这里仅快速操作一遍。

  • 在 example 目录下创建 env 目录,并在该目录中分别创建四个文件:
VITE_BASE_API=/api
VITE_APP_NAME='demo app'

example/env/.env.dev:

VITE_BASE_API=/dev-api
NODE_ENV=production

example/env/.env.uat:

VITE_BASE_API=/uat-api

example/env/.env.prod:

VITE_BASE_API=/prod-api
  • 在 vite.config.ts 中指定环境文件目录:
export default defineConfig({
  ...
  envDir: path.resolve(__dirname, 'env'),
	...
})
  • 在 src 中创建 env.d.ts 文件,以便于类型提示:
/// <reference types="vite/client" />
interface ImportMetaEnv {
  readonly VITE_BASE_API: string;
  readonly VITE_APP_NAME: string;
}

// eslint-disable-next-line no-unused-vars
interface ImportMeta {
  readonly env: ImportMetaEnv
}
  • 修改 package.json 的 scripts:
{
  ...
  "scripts": {
    "dev:dev": "vite --mode dev",
    "dev:uat": "vite --mode uat",
    "dev:prod": "vite --mode prod",
    "build:dev": "vue-tsc --noEmit && vite build --mode dev",
    "build:uat": "vue-tsc --noEmit && vite build --mode uat",
    "build:prod": "vue-tsc --noEmit && vite build --mode prod",
    "preview": "vite preview"
  },
  ...
}
  • 在 main.ts 中测试输入环境变量:
const env = import.meta.env
console.log(env)

1.5 测试启动服务

执行 pnpm run dev:dev,测试服务是否能正常启动,然后在浏览器中访问 localhost:3000,测试界面是否正常,环境变量是否正常输出。

2 测试 foo 组件

example 能正常运行后,说明 example 已经初始化成功,接下来便需要测试前面开发的 foo 组件了。

2.1 安装依赖

由于自定义组件库依赖于 element-plus,首先需要在 example 中安装 element-plus:

pnpm install element-plus

接着安装咱们的本地组件库 @yyg-demo-ui/yyg-demo-ui:

pnpm install @yyg-demo-ui/yyg-demo-ui

此时 example 的 package.json dependencies 如下:

"dependencies": {
  "@yyg-demo-ui/yyg-demo-ui": "workspace:^1.0.0",
  "element-plus": "^2.2.21"
},

2.2 引入组件库

在 main.ts 中分别引入 element-plus 和 自定义组件库:

...
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import YygDemoUi from '@yyg-demo-ui/yyg-demo-ui'
...
const app = createApp(App)
app.use(ElementPlus)
app.use(YygDemoUi)
app.mount('#app')

2.3 使用组件

项目创建时自动在 src/style.css 生成了很多样式,可以将里面的内容都删除,留下一个空的 style.css 文件。

最后只需在 App.vue 中测试 foo 组件即可,修改 App.vue 如下:

<template>
  <div class="site">
    <h1>组件库测试站点 yyg-demo-ui</h1>
    <p>测试站点主要用于开发过程中测试组件,即在开发过程中由业务驱动组件开发。</p>
    <yyg-foo :msg="msg"></yyg-foo>
  </div>
</template>
<script setup lang="ts">
import { ref } from 'vue'

const msg = ref('hello world')
</script>

<style scoped lang="scss">
.site {
  padding: 20px;
}
</style>

2.4 运行查看效果

再次运行 pnpm run dev:dev,查看效果:

foo 组件的样式、功能、以及 testLog 函数都正常运行,则 example 和 组件库的开发环境便已完成。

3 example 打包构建

在前面的 scripts 中添加了 build:dev、build:uat、build:prod命令,分别对应dev、uat、prod 三个环境,咱们就以 dev 环境为例说明 example的打包构建。

从命令行中进入 example 目录,依次进行打包构建、预览:

  • 执行 pnpm run build:dev 进行打包,打包构建成功后,会在整个项目的根目录下生成 dist 目录(该目录在 vite.config.ts 中 build.outDir 配置);
  • 执行 pnpm run preview 对打包后的文件进行预览,访问控制台中输出的端口,运行效果与上面的效果一致。

到这里,example 的开发和构建便已经完成,咱们可以在 example 中使用组件库的组件。下文将介绍组件库文档的开发和构建。

到此这篇关于Vue3组件库框架搭建example环境的文章就介绍到这了,更多相关vue搭建example环境内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mpvue项目中使用第三方UI组件库的方法

    说明 整理了一份简单的源码,放在github,有需要参考的同学自取~ 简介 微信小程序上线已有一年多时间啦,自美团的mpvue(基于 Vue.js 的小程序开发框架,从底层支持 Vue.js 语法和构建工具体系)问世也过去了好几个月. 前端技术日新月异,小程序的UI框架也层出不穷. 例如: WeUI: 一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一.(github) ZanUI: 有赞移动 Web UI 规范 ZanUI 的小

  • vue3如何按需加载第三方组件库详解

    前言 以Element Plus为例,配置按需加载组件和样式. 环境 vue3.0.5 vite2.3.3 安装 Element Plus yarn add element-plus # OR npm install element-plus --save 完整引入 import { createApp } from 'vue' import ElementPlus from 'element-plus'; import 'element-plus/lib/theme-chalk/index.c

  • Vue组件库ElementUI实现表格加载树形数据教程

    ElementUI实现表格树形列表加载教程,供大家参考,具体内容如下 Element UI 是一套采用 Vue 2.0 作为基础框架实现的组件库,一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的组件库,提供了配套设计资源,帮助网站快速成型 关键代码,在el-table添加属性, :tree-props="{children: 'children'}" ,注意row必须命名为children,官网也进行了说明: 支持树类型的数据的显示.当 row 中包含 children 字

  • Vue cli3 库模式搭建组件库并发布到 npm的流程

    市面上目前已有各种各样的UI组件库,比如 Element 和 iView ,他们的强大毋庸置疑.但是我们面临的情况是需求越来越复杂,当它们不能再满足我们需求的时候,这个时候就有必要开发一套属于自己团队的组件库了. 所以本文的目的就是让读者能通过此文,小能做一个简单的插件供人使用,大能架构和维护一个组件库不在话下. 以下一个简单的颜色选择器插件 vColorPicker 讲述从开发到上线到npm的流程. vColorPicker 插件 DEMO 一.技术栈 如何通过新版脚手架创建项目,这里就不提了

  • 浅谈基于Vue.js的移动组件库cube-ui

    cube-ui 是滴滴公司的技术团队基于 Vue.js 实现的精致移动端组件库.很赞,虽然组件还不是很多,但是基本场景是够用了,感谢开源! 首先创建一个vue项目 vue init webpack my-project cd my-project npm install 安装cube-ui npm install cube-ui -S 官方推荐使用 babel-plugin-transform-modules 插件,可以更优雅引入组件模块以及对应的样式. npm install babel-pl

  • 在vue2.0中引用element-ui组件库的方法

    在vue2.0中引用element-ui组件库 element-ui是由饿了么团队开发的一套基于 Vue 2.0 的桌面端组件库. 官网: http://element.eleme.io/ 安装 npm i element-ui -S 引用完整的element-ui import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); 需要注意的是,样式文件需要

  • Vue3组件库框架搭建example环境的详细教程

    目录 1 搭建 example 开发环境 1.1 创建 example 项目 1.2 修改 package.json 1.3 修改 vite 配置文件 1.4 多环境支持 1.5 测试启动服务 2 测试 foo 组件 2.1 安装依赖 2.2 引入组件库 2.3 使用组件 2.4 运行查看效果 3 example 打包构建 前面用了大量篇幅介绍组件库的开发环境搭建,包括:创建组件.创建组件库入口.组件库样式架构.组件库公共包,做了一大堆工作,还不能预览示例组件 foo,本文便搭建 example

  • Vue3 企业级组件库框架搭建 pnpm monorepo实战示例

    目录 引言 1 组件库工程应该具备的功能 2 环境准备 3 搭建 monorepo 项目 3.1 创建项目 3.2 配置 workspace 引言 基于 vite3 vue3 的组件库基础工程 vue3-component-library-archetype 和用于快速创建该工程的工具 yyg-cli,但在中大型的企业级项目中,通常会自主搭建这些脚手架或加速器.优雅哥希望每位前端伙伴能知其所以然,故接下来的文章将进入 Vue3 企业级优雅实战 系列,整个系列将包括五大部分: 首先会分享如何从 0

  • IDEA+Maven搭建Spring环境的详细教程

    1. Spring简介 Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架. 2. Spring的优势 1.方便解耦, 简化开发: 通过Spring提供的IOC容器, 可以将对象间的依赖关系交由Spring进行控制, 避免硬编码所造成的过度耦合. 2.AOP编程的支持: 通过AOP功能方便进行面向切面编程, 许多不容易用传统OOP实现的功能可以通过AOP轻松实现. 3.声明式事物编程: 通过声明方式灵活的进行事务管理, 提高开发效率和质量. 4.方便程序测试: 可以用非容器

  • 京东 Vue3 组件库支持小程序开发的详细流程

    源码抢先看: https://github.com/jdf2e/nutui NutUI 3.0 官网:https://nutui.jd.com/3x/ 小程序多端适配 设计初衷 在跨端小程序的开发过程中,我们发现没有合适的组件库可以使用,尤其在做电商商城类场景的业务时,没有符合京东 App 规范的组件库为我们的小程序项目提供支持.为了填补这一空白,同时让 NutUI 组件库能够为更多的开发者带来便利,我们决定在 NutUI 3.0 中 增加小程序多端适配的能力. 如何适配 Taro 在小程序跨端

  • kali安装docker及搭建漏洞环境的详细教程

    目录 前言: docker的简介 安装docker 1. 在kail环境下搭建docker,kali版本要在3.10以上,使用命令查看kali内核 2. 添加添加Docker官方的GPG密钥 3.,然后更新源 4. 然后导入证书 5.安装docker 6.检查安装是否成功 docker的简单使用 1. 启动docker 2. 查看镜像 3.搭建漏洞环境 前言: 言归正传,下面开始学习了.本文仅供学习参考,严禁用于一切违法行为,否则后果自负. docker的简介 Docker 是一个开源的应用容器

  •  用Vue Demi 构建同时兼容Vue2与Vue3组件库

    目录 前言: 一.Vue Demi 中的额外 API 1.isVue2 and isVue3 二.Vue Demi 入门 前言: Vue Demi 是一个很棒的包,具有很多潜力和实用性.我强烈建议在创建下一个 Vue 库时使用它. 根据创建者 Anthony Fu 的说法,Vue Demi 是一个开发实用程序,它允许用户为 Vue 2 和 Vue 3 编写通用的 Vue 库,而无需担心用户安装的版本. 以前,要创建支持两个目标版本的 Vue 库,我们会使用不同的分支来分离对每个版本的支持.对于现

  • 搭建vscode+vue环境的详细教程

    一.安装vue.js 1.简介 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue.js是一个MVVM模式的框架,如果读者有angul

  • 在 Windows 下搭建高效的 django 开发环境的详细教程

    从初学 django 到现在(记得那时最新版本是 1.8,本文发布时已经发展到 3.1 了),开发环境一直都是使用从官方文档或者别的教程中学来的方式搭建的.但是在实际项目的开发中,越来越感觉之前的开发环境难以适应项目的发展.官方文档或一些教程中的环境搭建方式主要存在这些问题: python manage.py runserver 启动的开发服务器热重载非常慢,尤其是当项目中导入了大量模块时,有时候改一次代码要等几秒钟才能完成重载. 主力开发环境为 Windows + PyCharm,然而有时候依

  • 标准版Eclipse搭建PHP环境的详细步骤

    一.下载Eclipse的PHP插件 百度搜索phpeclipse,看到某条结果是带有SourceForge.net字样的,点进去,找到Download按钮,点击之后,等待5秒就会开始下载了. 二.安装Eclipse的PHP插件 插件下载完成之后,解压,然后把site.xml删掉(大部分插件不用删这个文件,但是PHPEclipse必须删),最后把整个文件夹复制到Eclipse的dropins文件夹里面,重启Eclipse即可. 三.在Eclipse新建PHP工程和新建PHP文件 在插件安装成功的前

  • 搭建 springboot selenium 网页文件转图片环境的详细教程

    1. 环境准备 需要有 chrome 浏览器 + chrome driver + selenium 客户端 离线 chrome 下载地址 # 64位 linux 系统 https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm # 64位 weindow 系统 http://www.google.cn/chrome/browser/desktop/index.html?standalone=1&platfo

随机推荐