Skip to content

Latest commit

 

History

1,494 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@142vip/core-x

X代表一切都有可能,core-x 仓库是基于自身技术栈在进行工程化实践中封装的工具包、通用模块。

在线浏览

我的开源

示例项目

开源模块

使用

# 安装依赖(首选 ./scripts/ci,与 CI 一致;有问题再用 pnpm install)
./scripts/ci
# 若 ci 失败:pnpm install

# 文档站开发(根目录)
pnpm dev                    # 根站 :8080

# 单包 / demo(推荐进入对应目录)
cd packages/vitepress && pnpm build
cd apps/vitepress-demo && pnpm dev      # :3080

# 全量编译(根目录)
pnpm build:packages         # 所有 @142vip/* 包
pnpm build:apps             # 所有 *-demo
pnpm build:docs             # 文档站 + TypeDoc API
pnpm build                  # 全量

# 代码质量(根目录,提交前必跑)
pnpm lint
pnpm lint:fix

# 测试
pnpm test
cd packages/utils && pnpm test

# 清理缓存
pnpm clean:cache

仓库架构

pnpm 9 + Turbo monorepo:packages/ 含 31 个可发布 @142vip/* npm 包,apps/ 含 4 个 *-demo 示例。

flowchart TB
  ROOT["core-x · pnpm9 + turbo"]

  PKGS["packages/ · 31 × @142vip/*"]
  APPS["apps/ · 4 × *-demo"]
  VP[".vitepress/ · 根文档站 :8080"]
  DOCS["docs/ · index · apis · wiki"]
  SCR["scripts/ · ci · 发布 · commit"]
  GHA[".github/ · CI + CD"]

  ROOT --> PKGS
  ROOT --> APPS
  ROOT --> VP
  ROOT --> DOCS
  ROOT --> SCR
  ROOT --> GHA
  APPS --> PKGS
  VP --> PKGS
  DOCS --> VP
  SCR --> GHA
Loading

技术分层

flowchart LR
  DEMO["apps/*-demo ×4"] --> PKG["@142vip/* ×31"]
  PKG --> UTIL["utils · open-source"]
  PKG --> CLI["fairy-cli · release-version · eslint-config"]
  PKG --> FW["Nest · Egg · VitePress · VuePress"]
Loading

模块发布

npm 包默认 ESM 交付,同时提供 CJS 以兼容 require(unbuild 双格式);Nest 系为 CommonJS;Egg 子插件多为源码直发。

flowchart LR
  SRC["src/"] --> UB["unbuild · 18 包"]
  SRC --> TSC["tsc · Nest 5 包"]
  SRC --> EGG["Egg 插件 8 包 · 无 build 脚本"]
  UB --> DIST["dist .mjs + .cjs"]
  TSC --> DIST2["dist .js CJS"]
  EGG --> NPM["npm @142vip/*"]
  DIST --> EXP["exports"]
  DIST2 --> EXP
  EXP --> NPM
Loading

开发与发布流程

sequenceDiagram
  participant Dev as 开发者
  participant Hook as git hooks
  participant CI as GitHub CI
  participant CD as GitHub CD
  participant NPM as npm

  Dev->>Dev: cd build · lint:fix · 文档同步
  Dev->>Hook: git commit
  Hook->>Hook: lint:fix · check:commit
  Dev->>CI: PR → next
  CI->>CI: scripts/ci · lint · build:docs
  CI->>CD: merge next
  CD->>NPM: release @142vip/*
  CD->>CD: GitHub Pages
Loading

本地开发流程

flowchart TD
  A["./scripts/ci<br/>失败则 pnpm install"] --> B["改 packages / apps"]
  B --> C["cd 模块目录 && pnpm build"]
  C --> D["pnpm lint:fix · 0 error"]
  D --> E["同步文档 · README · sidebar"]
  E --> F{"预览?"}
  F -->|根站 :8080| G["pnpm dev"]
  F -->|demo :3080| H["cd apps/vitepress-demo && pnpm dev"]
  G --> I["pnpm build:docs"]
  H --> I
Loading

趋势

Star History Chart

贡献者

感谢所有向仓库贡献代码的开发者

@142vip/core-x

联系作者

若系列文章对你有所帮助,欢迎订阅公众号或微信”骚扰“,获取更多内容。商务合作请备注来意

关注微信公众号或添加好友联系储凡

交流/加群/互看朋友圈、聊天/提问/建议/提需求 可以在公众号直接私信,有时间即会回复,偶尔的延迟和疏漏还请小伙伴们谅解,蟹蟹。

证书

MIT

Copyright (c) 2019-present, @142vip 储凡

仅供学习参考,商业使用请保留作者版权信息,作者不保证也不承担任何软件的使用风险。

About

工程化核心库开源,x代表一切可能性

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages