网站推广话术,wordpress主题没法用,沈阳网站seo优化哪家好,国内新闻摘抄使用npm发布typescript包
什么是NPM
NPM#xff08;节点包管理器#xff09;是 JavaScript 编程语言的默认包管理器。NPM 注册表是一个公共存储库#xff0c;充当存储和分发 JavaScript 包的中心枢纽。它允许开发人员轻松安装、管理和共享可重用的 JavaScript 代码包…使用npm发布typescript包
什么是NPM
NPM节点包管理器是 JavaScript 编程语言的默认包管理器。NPM 注册表是一个公共存储库充当存储和分发 JavaScript 包的中心枢纽。它允许开发人员轻松安装、管理和共享可重用的 JavaScript 代码包也称为模块或包。
什么是 Typescript 以及为什么要使用它
TypeScript 是微软开发的一种编程语言。它是 JavaScript 的超集这意味着任何有效的 JavaScript 代码也是有效的 TypeScript 代码。与普通 JavaScript 相比它具有以下优势
静态类型改进的 IDE 支持提高代码质量访问高级语言功能更好的工具改善协作。
这些好处增强了 NPM 包的开发体验并使包的用户更容易使用它们并将其集成到他们的项目中从而产生更可靠、可扩展和可维护的 JavaScript 应用程序。
在本文中我们将了解如何使用 Typescript 创建自己的 NPM 包以及如何将其发布到 NPM 注册表。
初始化一个typescript项目 在本地计算机上创建一个新的项目目录。 打开终端或命令提示符并导航到项目目录。 运行以下npm init命令来初始化新的 Node.js 项目 第一个字段是package name这应该是我们的包的唯一名称。我们可以通过搜索NPM 注册表来检查该名称是否可用。如果该名称可用我们可以按Enter移至下一个。 下一个version字段的默认值为1.0.0。包版本通常使用语义版本控制。 什么是语义版本控制 它提供了一种标准方法来传达包中不同版本之间的兼容性和更改。它由三个数字组成主要版本、次要版本和补丁版本表示为MAJOR.MINOR.PATCH 例如 1.0.7 MAJOR版本增量引入不兼容的更改。 MINOR版本增量以向后兼容的方式添加新功能。 PATCH版本增量进行向后兼容的错误修复或小更新。 通过遵循语义版本控制实践并使用版本约束开发人员可以有效地管理依赖项、确保兼容性并向 NPM 包的用户和使用者传达包更新的影响。 下一个字段是description其中应包含 NPM 包功能的简短描述。 下一个字段是entry point它指的是当包被另一个模块导入时将执行的主 Javascript 文件。我们现在可以保留默认值。 下一个字段是test command它是为包运行测试而应执行的命令或脚本。我们现在也可以保留默认值。 下一个字段git repository应包含远程 Git 存储库的链接 下一个字段keywords应包含与我们的包相关的单词以帮助在 NPM 注册表中建立索引 下一个字段是author包作者的姓名 最后一个字段license应包含我们的开源许可证。 安装包依赖项运行命令 npm install --save-dev typescript ts-node 或 yarn add -D typescript ts-node 设置 tsconfig.json运行命令 npx tsc --init它将在我们的项目的基础上创建一个 tsconfig 文件。 将字段更新outDir为 dist 创建src文件夹后创建index.ts文件并粘贴下面的代码
export function add(a: number, b: number): number {return a b;
}console.log(add(3, 5)); // 8使用 npx ts-node src/index 命令运行代码我们应该在控制台中看到结果。之后删除console.log代码中的行。
初始化你的 git 仓库git init 创建一个.gitignore文件并将以下内容粘贴到该文件中
/node_modules # 忽略测试相关文件
/coverage.data
/coverage/ # 构建文件
/dist创建一个README.md包含项目描述以及如何使用它。
构建 Typescript 包
现在我们已经完成了包的代码编写我们将继续讨论如何构建我们的包以便最终用户能够在其各种 javascript 或 typescript 项目中使用它。
现在有各种专用的构建工具可以帮助完成此过程例如 tsup、babel、webpack、rollup 等但在本文中我们将重点看看 tsup
安装 tsup
通过运行 npm install tsup -D 或者 yarn add tsup --dev 命令将 tsup 添加到我们的项目。
创建我们的tsup.config.ts文件并粘贴下面的代码
import { defineConfig } from tsup;export default defineConfig({entry: [src/index.ts],format: [cjs, esm], // 构建 commonJS 和 ESmodules dts: true, // 生成声明文件 (.d.ts )splitting: false,sourcemap: true,clean: true,
});使用以下内容更新 package.json 中的 scripts scripts: {build: tsup,test: echo \Error: no test specified\ exit 1},我们现在可以通过运行 npm run build 或 yarn build 构建我们的项目 更新我们 package.json 文件中的 main 并添加以下内容
main: ./dist/index.js,
module: ./dist/index.mjs,
types: ./dist/index.d.ts,
files: [dist],现在我们的包应该已准备好发布但在此之前我们必须测试包以确保代码没问题。
测试 NPM 包
测试使我们能够在任何问题或错误到达我们的用户之前发现并解决它们。要为 npm 包编写测试我们需要使用 jest。
安装 jest
通过运行 npm install -D jest ts-jest types/jest 或 yarn add -D jest ts-jest types/jest 命令将 jest 添加到我们的项目中。
将 jest.config.js 文件添加到我们的项目并添加以下内容
module.exports {preset: ts-jest,testEnvironment: node,
};在项目中创建一个 tests 文件夹并创建一个 add.test.ts 文件并添加以下测试代码
import { add } from ../src;test(adds two numbers correctly, () {const result add(2, 3);expect(result).toBe(5);
});更新 package.json 中的 scripts
scripts: {build: tsup,test: jest},使用 npm run test 或 yarn test 命令运行测试脚本。结果应该如下图所示 发布我们的 NPM 包
最后在将包发布到 NPM 注册表之前发布它并在本地计算机上测试它非常重要以确保其正确性、功能性以及与其他模块或依赖项的兼容性。本地测试使我们可以尽早发现任何问题或错误并在向公众发布软件包之前进行必要的改进
在本地发布 NPM 包 在包的根目录运行 npm link 命令 在本例中创建另一个测试项目并在本地通过命令 npm link name-of-package 链接到我们的 npm 包 比如 npm link npm-demo-ts 在我们的测试项目中创建一个main.ts文件并导入我们的包以对其进行测试。 将 NPM 包发布到 NPM 注册表
如果我们还没有NPM帐户请创建一个帐户。在命令行中登录npm login我们的 NPM 帐户使用 npm publish 命令发布我们的包
结论
使用 TypeScript 进行包开发和使用会带来许多好处。其静态类型使开发人员能够提高代码质量、早期错误检测和增强的编辑器支持。TypeScript 的类型定义可以提供更好的文档并增强对包 API 的理解促进无缝集成并减少使用者的潜在错误。此外TypeScript 的生态系统拥有广泛的库、工具和资源促进协作和社区支持。