美文网首页
使用 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