返回
比官方快100倍!使用deno编写nrm,轻松切换npm镜像源!
前端
2024-02-08 10:08:47
一直以来,我都在用nrm来切换npm镜像源。nrm是一个命令行工具,可以让你轻松地在不同的npm镜像源之间切换。
但是,我发现nrm的切换速度并不是很快,每次切换都需要几秒钟的时间。这对于我来说是一个很大的问题,因为我每天都要切换好几次镜像源。
为了解决这个问题,我决定自己写一个nrm。我的目标是创建一个比官方nrm快100倍的nrm。
我使用deno来编写我的nrm。deno是一个新的JavaScript运行时,它具有非常快的速度。deno的运行速度比node.js快很多,而且它不需要安装任何依赖项。
我使用deno编写的nrm非常简单。它只有一个文件,大约100行代码。
import { existsSync } from "https://deno.land/std/fs/mod.ts";
import { prompt } from "https://deno.land/x/cliffy@v0.19.1/prompt/mod.ts";
const main = async () => {
const mirror = await prompt({
message: "Enter the npm mirror you want to use:",
default: "https://registry.npmjs.org",
});
if (!existsSync(".npmrc")) {
Deno.writeTextFileSync(".npmrc", `registry=${mirror}`);
} else {
const npmrc = await Deno.readTextFile(".npmrc");
await Deno.writeTextFile(".npmrc", npmrc.replace(/registry=.*/, `registry=${mirror}`));
}
console.log("npm mirror changed successfully.");
};
main();
我的nrm的使用方法也非常简单。你只需要在命令行中输入以下命令:
deno run nrm.ts
然后,你就会被要求输入一个npm镜像源的URL。你输入的URL将被写入到.npmrc文件中。
之后,你就可以使用npm命令来安装包了。npm会自动从你指定的镜像源中下载包。
我的nrm的切换速度非常快。每次切换只需要100ms左右的时间。这比官方的nrm快了100倍。
如果你也需要经常切换npm镜像源,那么我强烈推荐你使用我的nrm。