如何30秒内将TypeScript包快速发布到NPM平台?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1093个文字,预计阅读时间需要5分钟。
文章:30秒指南:将TypeScript包发布到npm
内容摘要:快速学会如何将TypeScript包发布到npm。本文将指导你完成整个发布过程,无需复杂步骤。如果你已经熟悉JS、TS和NPM,那么发布普通的NPM包将更加得心应手。如果没有相关经验,网上也有许多资源可以帮助你。以下是详细的发布步骤:
1. 准备工作确保你的TypeScript包已经编译成ES5代码,并准备好一个`package.json`文件。
2. 登录NPM使用你的NPM账号登录。
3. 发布包使用命令`npm publish`发布你的包。
4. 检查版本确保你的包版本正确,并遵循语义化版本控制。
5. 测试发布后,在其他项目中测试你的包,确保一切正常。
6. 维护持续更新你的包,修复bug,添加新功能。
通过以上步骤,你就可以将你的TypeScript包成功发布到npm了。祝你成功!
文章读译自The 30 second guide to publishing a typescript package to npm,部分内容有修改哈。
这篇文章要求你有一定的 JS 、TS 和 NPM 的知识,如果你写过普通的 NPM 包就更好啦~如果没有的话网上也很多教程的,都很简单~
发布过 npm 包的同学都知道,初始化一个 npm 项目,直接用 npm init -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. 运行 npm publish
接下来就是要发布到 npm 了,在 package.json 添加以下命令:
"release": "tsc && npm publish"
笔者习惯使用 standard-version 配合 commitizen 来发布 npm 包,感兴趣的同学可以自行了解一下~
如果想要在发布前调试本地包,可以使用 npm link 命令,在此项目根目录执行npm link, 然后在要调试的 demo 项目中执行 npm link <your package name>,然后在代码中直接引入使用即可。
下面是完成配置后的 package.json:
{ "name": "my-ts-lib", "version": "1.0.0", "description": "My npm package written in TS", "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { "build": "tsc", "release": "tsc && npm publish" }, "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"] }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计1093个文字,预计阅读时间需要5分钟。
文章:30秒指南:将TypeScript包发布到npm
内容摘要:快速学会如何将TypeScript包发布到npm。本文将指导你完成整个发布过程,无需复杂步骤。如果你已经熟悉JS、TS和NPM,那么发布普通的NPM包将更加得心应手。如果没有相关经验,网上也有许多资源可以帮助你。以下是详细的发布步骤:
1. 准备工作确保你的TypeScript包已经编译成ES5代码,并准备好一个`package.json`文件。
2. 登录NPM使用你的NPM账号登录。
3. 发布包使用命令`npm publish`发布你的包。
4. 检查版本确保你的包版本正确,并遵循语义化版本控制。
5. 测试发布后,在其他项目中测试你的包,确保一切正常。
6. 维护持续更新你的包,修复bug,添加新功能。
通过以上步骤,你就可以将你的TypeScript包成功发布到npm了。祝你成功!
文章读译自The 30 second guide to publishing a typescript package to npm,部分内容有修改哈。
这篇文章要求你有一定的 JS 、TS 和 NPM 的知识,如果你写过普通的 NPM 包就更好啦~如果没有的话网上也很多教程的,都很简单~
发布过 npm 包的同学都知道,初始化一个 npm 项目,直接用 npm init -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. 运行 npm publish
接下来就是要发布到 npm 了,在 package.json 添加以下命令:
"release": "tsc && npm publish"
笔者习惯使用 standard-version 配合 commitizen 来发布 npm 包,感兴趣的同学可以自行了解一下~
如果想要在发布前调试本地包,可以使用 npm link 命令,在此项目根目录执行npm link, 然后在要调试的 demo 项目中执行 npm link <your package name>,然后在代码中直接引入使用即可。
下面是完成配置后的 package.json:
{ "name": "my-ts-lib", "version": "1.0.0", "description": "My npm package written in TS", "main": "dist/index.js", "types": "dist/index.d.ts", "scripts": { "build": "tsc", "release": "tsc && npm publish" }, "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"] }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

