npm发包流程

NPM 包发布全流程(以 yt-comment-date-format 为例)

本文以 yt-comment-date-format 包为例,整理 NPM 包发布的核心命令、镜像配置、代码转 ES5 及镜像同步方法,同时修正已失效的淘宝镜像地址(原 npm.taobao.org 已替换为 npmmirror.com)。

一、NPM 包发布核心命令

涵盖登录、包创建、源配置、发布等关键操作,发布前需确保切换至 NPM 官方源。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 登录 NPM 账号(需输入用户名、密码、邮箱)
npm login

# 2. 查看当前登录的 NPM 用户
npm whoami

# 3. 快速创建 package.json(-y 跳过交互,packagename 替换为实际包名)
npm init packagename -y

# 4. 查看本地当前使用的 NPM 源
npm config get registry

# 5. 切换为 NPM 官方源(发布包必须使用官方源)
npm set registry https://registry.npmjs.org/

# 6. 发布包到 NPM 官方仓库
npm publish

二、NPM/Yarn 镜像配置(官方/淘宝)

2.1 NPM 镜像

1
2
3
4
5
6
7
8
# 查询当前镜像源
npm get registry

# 设置为 NPM 官方源
npm config set registry https://registry.npmjs.org/

# 设置为淘宝镜像(已替换为新地址 npmmirror)
npm config set registry https://registry.npmmirror.com/

2.2 Yarn 镜像

1
2
3
4
5
6
7
8
# 查询当前镜像源
yarn config get registry

# 设置为 Yarn 官方源
yarn config set registry https://registry.yarnpkg.com/

# 设置为淘宝镜像(新地址)
yarn config set registry https://registry.npmmirror.com/

三、使用 Babel 将 ES6+ 代码转为 ES5

为保证包的兼容性,需将 ES6+ 代码转译为 ES5,步骤如下:

3.1 配置 Babel

在项目根目录新建 .babelrc 文件,写入以下配置:

1
2
3
4
{
"presets": ["es2015"],
"plugins": []
}

3.2 安装依赖并转换代码

1
2
3
4
5
6
7
8
# 全局安装 babel-cli(可选,方便全局使用)
npm i -g babel-cli

# 本地安装开发依赖(推荐,避免全局依赖问题)
npm i --save-dev babel-preset-es2015 babel-cli

# 将 ES6 代码(index.es6.js)转译为 ES5 并输出为 index.js
babel index.es6.js -o index.js

四、同步淘宝镜像(发布后)

发布包到 NPM 官方后,若需同步到淘宝镜像(新地址),可通过以下两种方式:

1
2
3
4
5
# 方式 1:使用 cnpm 命令同步(需安装 cnpm)
cnpm sync yt-comment-date-format

# 方式 2:打开淘宝镜像同步页面手动触发
open https://npmmirror.com/sync/yt-comment-date-format

总结

  1. 发布 NPM 包必须切换至官方源https://registry.npmjs.org/),否则发布失败;
  2. 淘宝镜像已迁移至 npmmirror.com,需替换原 npm.taobao.org 地址;
  3. 代码转 ES5 需配置 .babelrc 并安装 babel-preset-es2015 依赖,保证包的兼容性;
  4. 发布后同步淘宝镜像可通过 cnpm sync 或手动打开同步页面完成。

npm发包流程
https://cszy.top/20200728-npm/
作者
csorz
发布于
2020年7月28日
许可协议