一个叫木头,一个叫马尾

tsdx: 让使用TypeScript编写npm package变成小菜一碟

公众号原文

现在用TypeScript的人越来越多,使用TypeScript开发npm package也成了一种常见的需求。因为tsc的配置比较多,与npm结合又需要一些前置准备,如果能有开箱即用的辅助工具(像React生态下的create-react-app),岂不美哉?

有需求就有创新。tsdx即是一个好帮手。

tsdx官方仓库:https://github.com/jaredpalmer/tsdx(点我)。

介绍:Zero-config CLI for TypeScript package development。

下面说说安装和使用。


安装

npm i -g tsdx

如你习惯了使用npx,可忽略这一步。

使用

# 创建一个新项目,假设我想封装一些微信开放平台的api
tsdx create weixin

#
 如果你喜欢用 npx
npx tsdx create weixin

运行上述命令后,会出现一个交互选项:

对于普通的package开发,选择第一项并回车继续。当所有准备工作完成后,终端会打印以下信息:

在自己喜欢的IDE中打开该项目,可以看到有如下文件结构:

我们最关注的是 srctest 目录。检查它们下面的文件内容:

index.ts

export const sum = (a: number, b: number) => {
  if ('development' === process.env.NODE_ENV) {
    console.log('boop');
  }
  return a + b;
};

可以看到,是一个简单的示例性的主文件。

blah.test.ts

import { sum } from '../src';

describe('blah'() => {
  it('works'() => {
    expect(sum(11)).toEqual(2);
  });
});

是一个基于 jest 的测试文件。


有了以上的基础模板,我们按照自己的package开发习惯进行开发即可。

最后,需要发布项目到 package registry 时,先调整一下 package.json 中的作者、证书等信息,然后执行以下命令:

npm run build  # 非必须
npm publish

有了tsdx,TypeScript package开发流程是不是简化了很多?