前言
在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI_, _Vuetify 等.
只需一行命令, 即可方便的将这些库引入我们当前的项目:
npm install vuetify // or yarn add vuetify
但是当我们自己开发了一个 _UI Component_, 需要在多个项目中使用的时候呢"htmlcode">
npm install -g @vue/cli # or yarn global add @vue/cli vue create personal-component-set
进入我们新建的项目, 让我们看看当前的项目文件:
接下来让我们写一个简单的 _Vue component_. 这里我写了一个简单的顶栏控件, 用来展示: 页面标题, 我的个人信息, github 源码链接等信息.
代码如下:
<template> <v-toolbar> <v-toolbar-side-icon @click="toMainPage()"></v-toolbar-side-icon> <v-toolbar-title>Visual Explain</v-toolbar-title> <v-spacer></v-spacer> <v-toolbar-items class="hidden-sm-and-down"> <v-btn flat @click="openMyGithub()"> <v-avatar size=42> <img src="/UploadFiles/2021-04-02/10973821">以上代码构成了一个非常简单的 Vue component_, 提供了一个 _props: sourceCodeLink 方便定制化跳转链接, 提供了一个 _event: to-main-page_, 用于触发用户跳转回主页的回调.
效果如图:
配置 project
下面我们来配置当前项目, 以使其可以发布到 npm 上.
首先我们编辑入口文件
src/components/index.js
, 使其被作为 UI 库导入时能自动在Vue中注册我们的 Component:import Vue from 'vue' import TopBar from './TopBar.vue' const Components = { TopBar } Object.keys(Components).forEach(name => { Vue.component(name, Components[name]) }) export default Components接下来我们添加 build 项目的脚本到 package.json 的 scripts 中:
其中
--name libraryName
指定的是要发布的Library的名称, 我们执行上面新加的脚本:可以看到 build 生成了各种版本可以用于发布的js文件
这里我们选择默认发布我们的
*.common.js
文件, 所以我们在package.json
中添加main属性.指定该属性后, 当我们引用该组件库时, 会默认加载 main 中指定的文件.
最后, 我们再配置
package.json
中的 files属性, 来配置我们想要发布到 npm 上的文件路径.我们这里将用户引用我们的组件库可能用到的所有文件都放进来:
npm 发布
首先我们注册一个 npm 账号 (如果已有账号, 可以跳过此步骤)
npm add user // 按照提示输入用户名, 邮箱等即可然后使用
npm login
登录注册号的状态登录后可以使用
npm whoami
查看登录状态在发布之前, 我们修改一下项目的名称(注意不要和已有项目名称冲突), 推荐使用 @username/projectName 的命名方式.
接下来我们就可以发布我们的 UI 组件库了, 在发布之前我们再编译一次, 让build出的文件为我们最新的修改:
npm run build-bundle
我们使用下面的命令发布我们的项目:
npm publish --access public
需要注意的是 package.json中指定的version属性: 每次要更新我们的组件库都需要更新一下version(毕竟同一个version 的代码不同,很容易让人产生疑惑)
测试使用
这样我们就完成了自己的 UI 组件库的发布. 接下来我们可以在任何需要使用到该组件库的项目中使用:
npm install --save @ssthouse/personal-component-set
然后在index文件 (如src/main.js) 中引入该组件库:
import '@ssthouse/personal-component-set'
接下来我们就可以在 Vue的template中使用组件库中的 Component了:
<template> <v-app id="app"> <top-bar :sourceCodeLink="sourceCodeLink"></top-bar> <router-view/> </v-app> </template>最后
经过上面这些步骤后, 我们就拥有了一个属于自己的组件库了. 我们可以随时更新, 发布自己新版的组件库.
而依赖了该组件库的项目只需要使用简单的 npm 命令即可更新 : )
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]