美文网首页
使用 TypeScript 编写 npm 包

使用 TypeScript 编写 npm 包

作者: 一半晴天 | 来源:发表于2018-06-05 12:56 被阅读15次

    使用 TypeScript 编写 npm 包跟 使用 JavaScript 编写 npm 包本质上是没有什么区别的。但是如果你正好搜索到这篇文章,说不定会对你所帮助。

    创建项目

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

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

    完善项目,发布项目

    代码见:
    https://github.com/banxi1988/that-is/tree/v1.0.0

    增加集成测试

    1. 打开 travis-ci
    2. 使用 GitHub 账号登录。
    3. 找到 that-is 项目,选择开启。
    4. 添加 .travis.yml 配置文件,commitpush 然后即可在 travis-ci 网站上看到测试状态。
    language : node_js
    node_js :
        - stable
        - "lts/*"
    install:
        - npm install
    script:
        - npm test
    

    使用 istanbul 进行覆盖测试

    1. 安装
    2. package.json"scripts" 部分 中添加执行脚本:
      "cover": "istanbul cover node_modules/mocha/bin/_mocha test/*.js - - -R spec"
    3. 然后 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 即可查看详细的报告说明。
    报告看起来是这样的:

    isNumber 测试覆盖率警告

    说明 isNumber 这个方法没有测试到。

    将覆盖测试数据上传到 coveralls

    1. 使用 GitHub 账号登录到 coveralls
    2. 找到 that-is 仓库将其中的开关开启。
    3. 安装 coveralls 工具 npm i coveralls -D
    4. 修改 .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"
    

    参考自: How to Create and Publish an NPM module in TypeScript

    相关文章

      网友评论

          本文标题:使用 TypeScript 编写 npm 包

          本文链接:https://www.haomeiwen.com/subject/poxpsftx.html