Skip to content

champkeh/sync-npm-mirror

Repository files navigation

sync-npm-mirror

npm package node compatibility workflows status

当你将自己开发的 npm 包发布到 npm 官方仓库时,想要立即同步淘宝镜像站上面的版本,那么就可以使用这个工具自动完成同步工作。

本项目受魔法哥的启发,但是关于实现方式我有自己的想法。
另外,我平时也会发布一些 npm 包,所以这个工具对我来说是一个刚需,于是就有了本项目。

demo

asciicast

安装

npm

npm install -D sync-npm-mirror

yarn

yarn add -D sync-npm-mirror

pnpm

pnpm add -D sync-npm-mirror

使用

with scripts (推荐)

在你需要同步的 npm 包的package.json中添加下面这个脚本:

{
  "name": "awesome-tools",
  "scripts": {
+    "postpublish": "sync-npm-mirror awesome-tools"
  },
  "devDependencies": {
    "sync-npm-mirror": "x.y.z"
  },
}

这样,当你的包在发布到官方仓库之后,会立即执行sync-npm-mirror awesome-tools将这个包同步更新到淘宝镜像站。

⚠️⚠️⚠️ 注意

上面的代码段中的awesome-tools为演示目的,需要替换成你自己的包名。

with require

const { syncNpmMirrorPackage } = require("sync-npm-mirror")

// sync single package
syncNpmMirrorPackage("axios")

// sync multi pakcage
syncNpmMirrorPackage(["axios", "express"])

with cli(global,需要全局安装)

sync-npm-mirror axios

支持同时更新多个包

sync-npm-mirror axios express koa

额外说明

由于依赖中的脚本无法获取到使用它的包名,所以需要在参数中手动指定你要同步的包名,也就是在postpublish脚本中指定包名作为sync-npm-mirror命令的参数。

参考上面的推荐用法。