Vue3组件库搭建5-发布

发布代码

首先需要注意一个问题,开源和发布代码是不一样的。

  • 开源代码:把你整个项目的源代码托管到诸如 github 或者 gitee 的地方,方便其他开发者可以看到你的源代码,从而进行膜拜和学习
  • 发布代码:其他项目可能需要使用到我们开发的代码,这种情况往往是使用的打包后的代码,也就是 dist 里面的代码,因此在发布的时候,我们往往只发布打包后的代码,并且发布的地方一般也是 npm 上面,这样其他的开发者就可以通过 npm install 的方式来安装我们的代码并使用

要将自己的代码发布到 npm 上面,有两个步骤:

  • 打包代码 ✅
  • 进行发布

首先我们需要对 package.json 进行一些配置工作,来配置我们要发布的文件有哪些(哪些文件要上传到 npm 上面)

  • 黑名单
  • 白名单

黑名单

在项目根目录下面创建一个 .npmignore 的文件,这个文件就类似于 .gitignore,文件里面记录哪些文件或者目录不上传

bash 复制代码
# .npmignore
src
tests

但是这种方式有一个弊端,就是一旦我们的源码发生了更改,增加了一些文件或者目录,但是这个 .npmignore 文件又没有及时的更新,就会导致一些原本不想上传到 npm 的文件或者目录上传上去。

白名单

所谓白名单模式,就是指名单里面出现的文件或者目录才会被上传至 npm。

在项目根目录下面的 package.json 中,增加 files 字段,该字段填写对应的要上传的 文件或者目录

json 复制代码
"files": [
    "/dist",
    "LICENSE"
],

之后我们就可以准备开始发布。

首先你需要核对一下你的镜像,如果你要上传到 npm 上面,那么镜像就应该修改会 npm 原本的镜像,如果你是搭建的私服,要上传到私服上面,那你修改为私服所对应的镜像

接下来既然你要上传到 npm 上面,那么需要你有一个 npm 的账号,之后在项目根目录通过 npm login 登陆这个账号,如下图所示:

最后只需要通过 npm publish 这个命令进行发布即可。

至此,我们就成功的将打包后的代码进行了发布。


测试: pnpm add fuxui-plus ,报错,说找不到

  • "@fuxui-plus/components": "workspace:*",

  • "@fuxui-plus/theme-chalk": "workspace:*",

  • "@fuxui-plus/utils": "workspace:*",

解决方案:将几个包的packge.json更新为作用域包,然后将版本号version都提升一次

js 复制代码
  "version": "1.0.1",
  "publishConfig": {
    "access": "public"
  }
  • 然后在打包
  • 然后要在npm上面新建组织
  • 然后再分别发布这两个子包
  • 然后再项目中执行,拉取包
  • pnpm i @fuxui-plus/theme-chalk
  • pnpm i @fuxui-plus/components
相关推荐
brzhang10 小时前
A2UI:但 Google 把它写成协议后,模型和交互的最后一公里被彻底补全
前端·后端·架构
coderHing[专注前端]10 小时前
告别 try/catch 地狱:用三元组重新定义 JavaScript 错误处理
开发语言·前端·javascript·react.js·前端框架·ecmascript
UIUV11 小时前
JavaScript中this指向机制与异步回调解决方案详解
前端·javascript·代码规范
momo10011 小时前
IndexedDB 实战:封装一个通用工具类,搞定所有本地存储需求
前端·javascript
liuniansilence11 小时前
🚀 高并发场景下的救星:BullMQ如何实现智能流量削峰填谷
前端·分布式·消息队列
再花11 小时前
在Angular中实现基于nz-calendar的日历甘特图
前端·angular.js
GISer_Jing11 小时前
今天看了京东零售JDS的保温直播,秋招,好像真的结束了,接下来就是论文+工作了!!!加油干论文,学&分享技术
前端·零售
Mapmost11 小时前
【高斯泼溅】如何将“歪头”的3DGS模型精准“钉”在地图上,杜绝后续误差?
前端
废春啊11 小时前
前端工程化
运维·服务器·前端
爱上妖精的尾巴12 小时前
6-9 WPS JS宏Map、 set、get、delete、clear()映射的添加、修改、删除
前端·wps·js宏·jsa