现在用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中打开该项目,可以看到有如下文件结构:
我们最关注的是 src
和 test
目录。检查它们下面的文件内容:
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(1, 1)).toEqual(2);
});
});
是一个基于 jest
的测试文件。
有了以上的基础模板,我们按照自己的package开发习惯进行开发即可。
最后,需要发布项目到 package registry 时,先调整一下 package.json
中的作者、证书等信息,然后执行以下命令:
npm run build # 非必须
npm publish
有了tsdx,TypeScript package开发流程是不是简化了很多?