当前位置: 首页 > news >正文

Jest项目实战(5):发布代码到 npm

上一节我们已经将代码成功托管到了 GitHub,但为了让其他开发者能够更方便地使用我们的工具库,接下来我们需要将它发布到 npm。npm 不仅是前端领域最著名的包托管平台,而且提供了便捷的代码检索和安装功能。以下是将 jstoolpack 发布到 npm 的详细步骤。

1. 打包代码

为了确保其他开发者能够以最优化的形式使用我们的库,我们首先需要对代码进行打包。这里我们选择使用 Rollup,一个轻量级的模块打包器,非常适合打包 JavaScript 库。

安装依赖

npm install --save-dev rollup rollup-plugin-typescript2 rollup-plugin-node-resolve rollup-plugin-commonjs rollup-plugin-terser

配置 Rollup

在项目根目录下创建 rollup.config.js 文件,配置如下:

import typescript from "rollup-plugin-typescript2";
import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import { terser } from "rollup-plugin-terser";// 配置选项数组
const outputConfigs = [{// 打包为 commonjs 模块file: "dist/index.common.js", // 类似于 webpack 的 outputformat: "cjs", // 打包为 commonjs 模块exports: "default"
},{// 打包为 ESM 模块file: "dist/index.esm.js", // 类似于 webpack 的 outputformat: "es", // 打包为 ESM 模块exports: "named"
},{// 打包为 umd 模块,方便在浏览器里面使用file: "dist/index.js",format: "umd",name: "jstp",exports: "default",
}];export default outputConfigs.map(config=>({input: "src/index.ts", // 入口文件,类似于 webpack 的 inputoutput : {...config},plugins: [typescript(),resolve(),commonjs(),terser(),],
}));

创建入口文件

src 目录下创建 index.ts 文件,内容如下:

import { range } from "./array";
import { debounce } from "./function";
import { truncate } from "./string";export default {range,debounce,truncate,
};

配置 TypeScript

确保 tsconfig.json 中有以下配置:

{"compilerOptions": {"target": "ESNext","module": "ESNext","strict": true,"esModuleInterop": true,"skipLibCheck": true,"forceConsistentCasingInFileNames": true,"outDir": "./dist","rootDir": "./src"}
}
2. 发布前的准备

配置 .npmignorepackage.json

为了确保只有必要的文件被发布到 npm,往 npm 发布代表的时候,应该只发布打包后的代码,这里有两种方式:

  • 黑名单
  • 白名单

黑名单方式类似于 .gitignore 的方式,创建一个.npmignore,回头记录在这个文件里面的目录或者文件就不会被发布到 npm 上面

# .npmignore
src
tests

但是使用黑名单的方式有一个问题就是在项目中当我们新增了一些文件或者目录的时候,.npmignore 也需要做出相应的修改。有些时候会忘记修改 .npmignore 文件,导致一些不必要的文件或者目录被发布到 npm 上面去。

更加推荐的是白名单方式,在 package.json 文件中添加 files 字段,只有 files 字段里面的文件或者目录才会被发布到 npm 上面去。

{"files": ["dist","LICENSE"]
}

白名单配置完成后,我们还需要做两件事情:

  • 包的说明信息
    • 包的名字
    • 包的版本
    • 包的描述
    • 包的作者
  • 包的入口文件

确保 package.json 中包含以下信息:

{"name": "jstoolpack","version": "1.0.0","description": "This is a JavaScript function library, primarily aimed at learning and communication.","main": "dist/index.common.js","module": "dist/index.esm.js","browser": "dist/index.js","author": "Your Name <your.email@example.com>","license": "MIT","files": ["/dist","LICENSE"],"repository": {"type": "git","url": "git+https://github.com/yourusername/jstoolpack.git"}
}
3. 进行发布

确保镜像源正确

npm config get registry

如果镜像源不是 https://registry.npmjs.org/,可以通过以下命令切换:

npm config set registry=https://registry.npmjs.org

登录 npm

确保你已经在 npm 上注册了账号并验证了邮箱。然后在终端中执行以下命令进行登录:

npm login

按照提示输入用户名、密码和邮箱。

发布代码

确保所有更改都已经提交并且工作区是干净的,然后执行以下命令进行发布:

npm publish

如果一切顺利,你会看到类似以下的输出:

+ jstoolpack@1.0.0

至此,jstoolpack 已经成功发布到 npm 上。其他开发者可以通过以下命令轻松安装和使用你的库:

npm install jstoolpack

总结

通过以上步骤,我们不仅将代码托管到了 GitHub,还成功发布了到 npm,使得其他开发者可以更方便地使用我们的工具库。这不仅提高了项目的可见性和可用性,也为社区做出了贡献。


http://www.mrgr.cn/news/67959.html

相关文章:

  • 宠物空气净化器是养宠智商税吗?真实测评霍尼韦尔、希喂、米家
  • 详解使用python读写csv,以及将csv数据写入数据库
  • 【推荐】iptables学习宝典
  • ubuntu 22.04 server 安装 和 初始化 LTS
  • opencv - py_imgproc - py_grabcut GrabCut 算法提取前景
  • vue实战学习(1)(Vue概述、Vue学习方向)
  • 矩阵论 •「线性空间、基变换与向量坐标变换」
  • Jest项目实战(4):将工具库顺利迁移到GitHub的完整指南
  • yakit中的fuzztag
  • Ubuntu安装Python并配置pip阿里镜像教程 - 幽络源
  • bat批量处理脚本细节研究
  • 什么是干部民主测评系统?如何选择合适的系统?
  • 论文 | Teaching Algorithmic Reasoning via In-context Learning
  • 基于STM32的智能花园灌溉系统设计
  • golang笔记-Array(数组)
  • Java LeetCode练习
  • Rust语言为什么在2024年依然流行?真的安全、快速又可靠吗?
  • 【数学二】线性代数-向量-向量组的秩、矩阵得秩
  • 可信度模型
  • Java 网络编程(一)—— UDP数据报套接字编程
  • 全卷积和全连接
  • 算法每日练 -- 双指针篇(持续更新中)
  • 【IC验证】systemverilog的设计特性
  • 零基础小白 Python这样学就对啦!——05篇
  • RMQ消息发送失败处理
  • 解析静态链接