2.0.79 • Published 8 months ago

e6yun-ui v2.0.79

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

规范常规操作流程

为了规范git提交,并通过git提交记录,自动生成changelog,规范常规的操作流程

从develop拉取分支 1、修改代码 2、git commit -m <type>(scope?): <subject> 按规范提交修改内容 3、npm version [newVersion] 更新版本(更新版本前,需要提交完所有文件) 4、npm publish 发布新版本到npm仓库(会更新src/index.js,再进行步骤5单独提交一次git) 5、git commit -m build: 新版本发布 此操作可能会重新生成changelog, 需要步骤6,再次提交 6、git commit -m docs: 文档更新 7、git push 8、合并到baseline-dev分支 // 如若需要更新站点,目前已配置devops,但需要手动发布 9、、devops测试环境流水线运行(baseline-dev分支)

git commit 提交规范

以后提交都会严格校验,否则无法提交

///  注意,英文冒号 + 空格  ///
git commit -m <type>(scope?): <subject>

// type: 类型
// scope: 作用域,可选。用于标识此次提交主要涉及到代码中哪些模块。支持多作用域(可使用分隔符:“/”、“” 和 “,”
// subject: 一句话描述此次提交的主要内容,做到言简意赅。
示例:
  git commit -m 'chore: run tests on travis ci'
  git commit -m 'fix(server): send cors headers'
  git commit -m 'feat(blog): add comment section'

常用的 type 类别:

  build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
  ci:主要目的是修改项目配置(例如:Jenkins)的提交
  docs:文档更新
  feat:新增功能
  fix:bug 修复
  perf:性能优化
  refactor:重构代码(既没有新增功能,也没有修复 bug)
  revert:回滚某个更早之前的提交
  style:不影响程序逻辑的代码修改(修改空白字符,补全缺失的分号等)
  test:新增测试用例或是更新现有测试
  chore:不属于以上类型的其他类型(日常事务)

如果type为feat、fix、perf、revert,则该 commit 将肯定出现在 Change log 之中 git 的提交记录,会通过校验,不合规范的不允许提交,通过的提交,都会有记录,最终用于生成log

changelog 生成

1、可以手动通过npm run changelog来更新 2、通过升级版本号来更新log 注意,版本的log使用 npm version newVersion 才会生成新的log,手动修改 package.json version 不会有新的版本log

命令作用执行结果version
npm version patch升级修订号首次执行2.0.0-0 -> 2.0.0, 再次执行2.0.0 -> 2.0.1
npm version minor升级次版本号2.0.1 -> 2.1.0
npm version major升级主版本号2.1.0 -> 3.0.0

当然是可以做类似的版本更新的: npm version 1.1.1-beta.123

以上版本更新的操作,都会自动执行一次git commit,打上版本标记,请注意

package.json

script 中的 & 和 && 命令解释:

&: 如果是并行执行(即同时的平行执行),可以使用&符号 &&: 如果是继发执行(即只有前一个任务成功,才执行下一个任务),可以使用&&符号

"build:file": "node build/bin/iconInit.js & node build/bin/build-entry.js & node build/bin/i18n.js & node build/bin/version.js",

用来创建单独的主题样式

"build:theme": "node build/bin/gen-cssfile && gulp build --gulpfile packages/theme-chalk/gulpfile.js && cp-cli packages/theme-chalk/lib lib/theme-chalk",

cross-env NODE_ENV=development 作用

cross-env 作用: 它是运行跨平台设置和使用环境变量的脚本

当我们使用 NODE_ENV = production
来设置环境变量的时候,大多数windows命令会提示将会阻塞或者异常,或者,windows不支持NODE_ENV=development的这样的设置方式,会报错。因此
cross-env 出现了。我们就可以使用 cross-env命令,这样我们就不必担心平台设置或使用环境变量了。也就是说 cross-env
能够提供一个设置环境变量的scripts,这样我们就能够以unix方式设置环境变量,然而在windows上也能够兼容的。

NODE_ENV=development / production 则是在打包时配置环境变量,用来区分开发环境 / 正式环境 使用如下:

"scripts": {
  "dev": "NODE_ENV=development webpack-dev-server --progress --colors --devtool cheap-module-eval-source-map --hot --inline",
  "build": "NODE_ENV=production webpack --progress --colors --devtool cheap-module-source-map",
  "build:dll": "webpack --config webpack.dll.config.js"
},

而上面的代码在 window / mac 环境中并不兼容, windows 不支持 NODE_ENV=development 的这样的设置方式,所以需要引入 cross-env 库实现兼容:

"scripts": {
  "dev": "cross-env NODE_ENV=development webpack-dev-server --progress --colors --devtool cheap-module-eval-source-map --hot --inline",
  "build": "cross-env NODE_ENV=production webpack --progress --colors --devtool cheap-module-source-map",
  "build:dll": "webpack --config webpack.dll.config.js"
}