教你30秒发布一个TypeScript包到NPM的方法步骤
文章读译自The30secondguidetopublishingatypescriptpackagetonpm,部分内容有修改哈。
这篇文章要求你有一定的JS、TS和NPM的知识,如果你写过普通的NPM包就更好啦~如果没有的话网上也很多教程的,都很简单~
发布过npm包的同学都知道,初始化一个npm项目,直接用npminit-y就可以了,那如果要用ts呢,直接tsc--init即可。这两个操作会生成package.json和tsconfig.json文件。然后我们按以下步骤修改一下配置:
1.添加"declaration":true到你的tsconfig.json
这行语句告诉TypsScript在编译的时候为你自动生成d.ts文件。需要注意的是,当你使用私有的类型时,但是这个类型也外部API的一部分,这个包的使用者就得不到该类型的类型推断,TS编译器也会报警告,这时你只需要在该类型前添加export即可。
2.添加"types":"index.d.ts"到你的package.json
当其他人导入你的包的时候,这句话就告诉了TS编译器到哪里去寻找类型定义文件。这里的.d.ts文件和main入口指向的是一个文件夹,所以通常情况下,你的package.json会包含下面两行:
"main":"dist/index.js", "types":"dist/index.d.ts"
(上面默认你在tsconfig.json中配置的outDir指向的是dist目录)
3.保证你的dist目录被添加到了.gitignore
在我们的代码仓库,一般不需要包含编译后的代码,只需要包含源码即可。所以我们不对dist目录做版本管理。并且这也不影响我们发布dist目录到npm。
4.运行构建命令
运行tsc即可编译所有的源码。这非常方便,通常情况下,我们可以添加一条命令到package.json:
"build":"tsc"
5.运行npmpublish
接下来就是要发布到npm了,在package.json添加以下命令:
"release":"tsc&&npmpublish"
笔者习惯使用standard-version配合commitizen来发布npm包,感兴趣的同学可以自行了解一下~
如果想要在发布前调试本地包,可以使用npmlink命令,在此项目根目录执行npmlink,然后在要调试的demo项目中执行npmlink
下面是完成配置后的package.json:
{ "name":"my-ts-lib", "version":"1.0.0", "description":"MynpmpackagewritteninTS", "main":"dist/index.js", "types":"dist/index.d.ts", "scripts":{ "build":"tsc", "release":"tsc&&npmpublish" }, "author":"savokiss", "license":"MIT", "devDependencies":{ "typescript":"^3.5.3" } }
下面是最终的tsconfig.json:
{ "compilerOptions":{ "target":"es5", "module":"commonjs", "lib":["es2017","es7","es6","dom"], "declaration":true, "outDir":"dist", "strict":true, "esModuleInterop":true }, "exclude":["node_modules","dist"] }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。