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
相关推荐
benbenAItalk5 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
2601_962885725 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
西瓜太郎12346 小时前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
陈随易8 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周8 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师9 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing989 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
EatFan9 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
梦想平凡10 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
IT_陈寒10 小时前
Redis的Set操作居然能把我的服务整挂了?
前端·人工智能·后端