描述:基石开发指南-依赖,创建发布
开发指南
为了编辑和重建基石,您需要安装Node.js。一旦你有了节点。安装了js和npm包管理器,您可以使用它们来安装项目的依赖项并运行通用开发任务。
常见任务
安装的依赖关系
npm install
注意: 安装/更新依赖项应该在git存储库的每次更新之后执行。如果不执行此操作,您可能会在开发过程中遇到问题。
运行构建
npm start
运行构建将创建库的缩小版本和未缩小版本,以及它们关联的源映射。
在每次源更改后自动运行构建
npm run watch
如果您想调试问题或向源代码添加新特性,可以使用此命令。
开发服务文件
有许多方法可以运行简单的HTTP服务器。你也可以用 'python -m simplehttpserver 8080'.
- 安装 'http-server' package:
``` bash
npm install http-server -g
```
注意: 您可能需要使用sudo进行全局安装
- 运行服务器
``` bash
http-server
```
- 在浏览器打开 http://127.0.0.1:8080/example/index.html 加载示例.
注意:如果您想在移动设备上使用它们,请启动HTTP服务器并导航到计算机的IP (e.g. http://192.168.1.11:8080/example/index.html)
运行和调试测试
npm test
运行测试时,将创建一个“覆盖率”目录。注意,这个目录并不存在于主存储库中,因为它仅仅是一个构建工件。如果你在“覆盖率/ HTML /索引”下打开HTML文件。使用web浏览器(不需要HTTP服务器),您将能够查看和检查测试覆盖报告。
[图片上传失败...(image-fd2c72-1533799488283)]
启动测试之后,还可以在web浏览器中导航到http://0.0.0.0:9876/debug,通过Karma测试运行器调试测试。注意,这个URL不会立即工作,因为 npm test
的第一步是重新构建库。
Running code linting 运行代码检查
npm run eslint
# 或者包括自动修复:
npm run eslint-fix
# 或自动修复“测试”目录:
npm run eslint-fix-test
运行上面的命令将检查linting问题的源代码。
通过Pull request提交更改
如果您已经对源代码进行了更改,并且您认为该更改应该包含在主存储库中,那么您可以通过创建[Pull Request]将其返回给社区(https://github.com/cornerstonejs/cornerstone/pulls). 请创建一个相关的Issue来描述您正在解决的问题/您正在添加的特性,以便库维护人员可以就这些更改是否适合存储库给出反馈。您的bug修复/新特性可能会更好地在另一个库中实现(例如Cornerstone Tools)。在提交pull request之前,请确保所有测试都通过,并且您已经运行了ESLint并修复了任何问题。
开发工具链和规范
Cornerstone依赖许多开放源码工具、组件和免费服务来确保质量
常规
- Babel 用于从下一代JavaScript到更广泛支持以前的JavaScript黑白棋的转换
- WebPack 包项目
- ESLint 用于执行代码样式并维护质量
- NPM 用于托管可安装包。 参见Cornerstone Core on NPM
- Semantic Versioning用于库的版本控制。
- keep a changelog用于更改日志的格式。
测试
- Karma 作为测试者
- Mocha用作测试框架
- Chai 用于测试断言
- Istanbul 用于报告代码覆盖率
- Travis CI 用于自动运行测试. 参见Cornerstone Core on Travis CI
- Coveralls用于显示自动测试后的代码覆盖率。参见 Cornerstone Core Coveralls Test Coverage
- Headless Chrome 用于运行无头测试。
文档
- JSDoc 格式化用于记录源代码。
- documentation.js 用Markdown从JSDoc注释生成API文档
- GitBook 将标记文档转换为HTML
- Github Pages 主机的文档
- Cloudflare 被放置在Github页面前面,以通过HTTPS提供文档。
- Rawgit 用于从存储库服务 Live Examples 。我们还打算将其转换为使用Github页面托管。
写作测试
以下是一些关于写作测试的一般提示,可能会有用:
- 测试必须在“test”目录中。请尽量确保它们遵循“src”目录布局
- 测试文件名必须以"_test.js"结束
- "coverage_test.js"文件确保了所有的文件都遵从Istanbul规则,这样代码覆盖报告就可以被用来探索整个存储库。
- Do not convert 'function ()' to arrow functions (i.e. '=> {}') within the 'it', 'should', or 'describe' blocks or Mocha will fail to run the tests properly.
*不要将'it', 'should',或'describe'的块或Mocha中的 “function()”转换为指向 functions(i.e. '=> {}')的函数,否则将无法正常运行测试。
发布一个新版本
- 确保你有来自master的最新提交
- 根据自上次发布以来的更改范围确定需要进行的版本更改。
- 更新 changelog
- 一定要感谢任何代码贡献者!
- 更新“package.json”中的包和依赖版本
- 构建版本更新:
npm run version
- 运行构建:
npm run build
- 提交更改
git commit -am "Bump version <version>"
- 用版本号和标题标记提交
git tag -a "<version>" -m "Version <version>"
- 用版本号推动提交到master
git push origin master --tags
- 发布到NPM:
npm publish
更新gitbook文档
如果这是你的第一次
- 确保你已经在全球范围内安装了gitbook-cli了,如果没有,运行:
npm install -g gitbook-cli
- 进入/docs文件夹:
gitbook install
更新文件和部署
- 在根文件夹运行:
npm run docs
# 将通过livereload提供文档到http://localhost:4000/
- 更改所需的文档,确保一切正确
- 为了部署,运行:
npm run docs:deploy