东信光羽 Donson LightWing Framework

  1. 配置源
npm config set @donson:registry https://registry.yingsaidata.tech/
  1. 安装到项目
npm i -g @donson/dlf
  1. 运行
dlf
  1. 查看帮助信息:
dlf --help
  1. 在 gitlab 下载光羽 dlf 项目
  2. 安装依赖: pnpm install
  3. 启动本地服务器:
    1. 进入到./apps/core/目录,执行npm run start:docs命令 ,开启文档编译 watch 模式
    2. 进入到./apps/core/目录,执行npm run server:docs命令 ,开启本地服务器
  4. 开发一个模块: 在 ./apps/core/packages 目录中编写一个模块(js、ts 文件),并编写注释 (详见例子 ./packages/un/wait.ts)
  5. 发布:
    1. 提交代码到 gitlab
    2. 到 Jinkins 上部署名为'dlf'的项目

目录结构

请根据以下目录结构放置对应的模块文件

├── common # 通用模块
│   └── sample.js
└── vue # vue 相关模块
├── components # vue 组件
│   └── Sample.vue
├── directives # vue 自定义指令
│   └── v-sample.js
└── mixins # vue 混入
└── sampleMixin.js
└── taro # taro 相关
└── cli # 执行脚本
└── weapp # 微信小程序
└── config # 通用配置

推荐优先使用单文件形式编写模块,当单文件无法满足时,可以创建模块目录,并在目录中的 index.(js, vue) 导出模块

命名

  • common 使用驼峰方式命名文件,文件名与导出模块名一致

  • vue

    • components 使用小写横杆分割方式命名文件,文件名与导出组件名一致
    • directives 使用 v- 开头的驼峰方式命名文件,文件名与导出模块名一致
    • mixins 使用 Mixin 结尾的驼峰方式命名文件,文件名与导出模块名一致

    文档生成工具为 typedoc,使用注释生成文档 文档

文档统一采用 jsdoc 在函数/变量声明时编写,支持 markdown 语法和 ts 类型补全,由 typedoc 生成文档

文档生成工具为 typedoc,使用注释生成文档

格式化与静态分析

请调整正在使用的编辑器,使其能读取项目中的 .prettierrc.eslintrc.json 文件的配置,并在提交代码前做好代码格式化与静态分析工作。

有两开发方案,主要用于关联 cli 库与本地调试,任选其一即可

  1. 先删除 npm 下载的 dlf-cli
npm uninstall -g @donson/dlf
  1. 执行 link 命令安装 cli
cd /dlf/apps/core
npm link
  1. 调试完毕后记得 unlink
npm unlink
  1. 全局安装 yalc 命令行工具
yarn global add yalc
  1. 本地发布
cd /dlf/apps/core
yalc publish
  1. 本地更新依赖
yalc add @donson/dlf@版本号
  1. 前置项,注册&登录私仓账号
npm set registry https://registry.yingsaidata.tech/
npm adduser --registry https://registry.yingsaidata.tech/
npm profile set password --registry https://registry.yingsaidata.tech/
  1. 更新版本号
/dlf/apps/core/package.json
// 测试&开发版本:【加小尾巴】
{
...
"version": "1.0.0-dev-0.1",
...
}
// 正式版本
{
...
"version": "1.0.0",
...
}
  1. ./packages/core/package.json 中的 "type": "module" 删除掉

  2. git 提交 commit,发布前会检查

  3. 执行发布命令

cd /dlf/apps/core

# 发布开发版本 develop
pnpm publish:cli-dev
# 或
pnpm publish --registry https://registry.yingsaidata.tech/ --tag develop

# 或发布正式版本 lastest
pnpm publish:cli
# 或
pnpm publish --registry https://registry.yingsaidata.tech/
  1. ./packages/core/package.json 中的 "type": "module" 添加回来
  2. 提交代码到 gitlab
  • 节省维护成本,更新迭代只需要 push 代码与合并分支,不需要繁琐的构建过程
  • 主流脚手架的 babel-loader 的默认配置在习惯上忽略 node_modules 目录,使用本公共库时,不需要调整项目的 babel-loader 配置
  • 为本公共库贡献代码时,可以直接使用 es6 以上的语法编写代码
  • 在使用本公共库出现错误时,可以快速定位到源码进行调试,而不是在 node_modules 目录翻来翻去
  • 当发现某些模块存在不足时,可以快速微调,并通知对应的维护者进行更新,无需等待线上版本更新,不影响项目开发进度