@myblog/common (1.0.0)

Published 2026-09-26 22:38:09 -07:00 by justme

Installation

@myblog:registry=https://git.oeo.one/api/packages/justme/npm/
npm install @myblog/common@1.0.0
"@myblog/common": "1.0.0"

About this package

博客前台与管理后台共用的逻辑、组件与样式:URL / HTML 安全、Markdown 渲染、格式化、主题、图标

@myblog/common

博客前台(blog-frontend)与管理后台(blog-dashboard)共用的代码。 两边只从这个包导入,不再各自保留副本,避免安全规则、Markdown 渲染和样式在两个项目里分叉。

导入 内容
@myblog/common URL / HTML 安全(safeUrl、safeImageSrc、sanitizeHtml、safeLocalPath …)、renderMarkdown、日期与头像格式化、主题 token
@myblog/common/components Icon
@myblog/common/styles/base.css 设计系统(CSS 变量、排版、通用元素)
@myblog/common/styles/markdown.css 文章正文样式:渲染结果放进 class="markdown" 的容器(前台文章页、后台预览共用)
@myblog/common/styles/hljs.css 代码高亮配色

vue、marked、highlight.js 是 peerDependencies,由使用方安装,包里不打包,页面里只有一份 Vue。

在项目里使用

包发布在 git.oeo.one 的 npm 仓库(私有,安装需要令牌)。使用方的 .npmrc:

@myblog:registry=https://git.oeo.one/api/packages/justme/npm/
//git.oeo.one/api/packages/justme/npm/:_authToken=${GITEA_NPM_TOKEN}

GITEA_NPM_TOKEN 是有 read:package 权限的 Gitea 令牌:本机设为用户环境变量,CI 里由 secret 注入。 没有设置时其他依赖照常安装,只有 @myblog/* 会 401。

package.json 里写确切版本("@myblog/common": "1.0.0"),升级时显式改版本号并提交锁文件。

开发

npm install
npm run check     # 类型检查(strict + 未使用变量)+ 单元测试
npm run build     # dist/:ES 模块 + 类型声明

同时修改本包和使用方时,在使用方临时安装本地构建:

npm pack                                                  # 生成 myblog-common-x.y.z.tgz
npm install ../myblog-common/myblog-common-x.y.z.tgz --no-save   # 在使用方执行,不改 package.json

--no-save 不会修改使用方的 package.json 与锁文件;验证完成后发布正式版本,再在使用方升级版本号。

发布

  1. 修改 package.json 的 version(语义化版本:破坏兼容升 major,新增导出升 minor,修正升 patch),更新 CHANGELOG.md。
  2. npm run check 通过后提交,打 tag v<version> 并推送。流水线检查 tag 与版本一致、测试通过后发布。
  3. 在前台、后台里把依赖升到新版本(npm install @myblog/common@<version> --save-exact),各自提交。

Dependencies

Development Dependencies

ID Version
@vitejs/plugin-vue ^5.2.1
highlight.js ^11.11.1
marked ^14.1.3
typescript ~5.7.2
vite ^6.0.7
vitest ^3.0.0
vue ^3.5.13
vue-tsc ^2.2.0

Peer Dependencies

ID Version
highlight.js ^11.11.1
marked ^14.1.3
vue ^3.5.13
Details
npm
2026-09-26 22:38:09 -07:00
7
latest
35 KiB
Assets (1)
Versions (1) View all
1.0.0 2026-09-26