首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

使用 TypeScript 编写 npm 包

使用 TypeScript 编写 npm 包

创建项目

我们要创建的包是一个叫做 thatis 的包。因为在使用 JS 写代码时,经常需要判断某一个对象是不是某一种类型的。这个包就是用来收集一些常用的判断方法的。

    创建项目目录 thatis
    进入项目目录,使用 npm init 初始化,一路默认即可,后面再修改。
    使用 tsc --init 添加 tsconfig.json

完善项目,发布项目

代码见:
https://github.com/banxi1988/that-is/tree/v1.0.0
增加集成测试

    打开 travis-ci
    使用 GitHub 账号登录。
    找到 that-is 项目,选择开启。
    添加 .travis.yml 配置文件,commit ,push 然后即可在 travis-ci 网站上看到测试状态。

    language : node_js
    node_js :
        - stable
        - "lts/*"
    install:
        - npm install
    script:
        - npm test

使用 istanbul 进行覆盖测试

    安装
    在 package.json 的 "scripts" 部分 中添加执行脚本:
    "cover": "istanbul cover node_modules/mocha/bin/_mocha test/*.js - - -R spec"
    然后 npm run cover 执行。可以看到类似下面的输出:

    =============================================================================
    Writing coverage object [/Users/banxi/Workspace/that-is/coverage/coverage.json]
    Writing coverage reports at [/Users/banxi/Workspace/that-is/coverage]
    =============================================================================
     
    =============================== Coverage summary ===============================
    Statements   : 62.5% ( 30/48 )
    Branches     : 16.67% ( 4/24 )
    Functions    : 73.33% ( 11/15 )
    Lines        : 62.5% ( 30/48 )
    ================================================================================

详细的说明在 coverage 目录中

    ➜  that-is (master) ✗ tree coverage
    coverage
    ├── coverage.json
    ├── lcov-report
    │   ├── base.css
    │   ├── dist
    │   │   ├── index.html
    │   │   └── index.js.html
    │   ├── index.html
    │   ├── prettify.css
    │   ├── prettify.js
    │   ├── sort-arrow-sprite.png
    │   └── sorter.js
    └── lcov.info
     
    2 directories, 10 files

打开其中的 index.html 即可查看详细的报告说明。
报告看起来是这样的:
1433690-c5e8b0389259f8a6.png
isNumber 测试覆盖率警告

说明 isNumber 这个方法没有测试到。
将覆盖测试数据上传到 coveralls

    使用 GitHub 账号登录到 coveralls
    找到 that-is 仓库将其中的开关开启。
    安装 coveralls 工具 npm i coveralls -D
    修改 .travis.yml 添加 上传测试覆盖率数据到 coveralls 的脚本。

    language : node_js
    node_js :
        - stable
        - "lts/*"
    install:
        - npm install
    script:
        - npm run cover
    # Send coverage data to Coveralls
    after_script: "cat coverage/lcov.info | node_modules/coveralls/bin/coveralls.js"
返回列表