使用 npmjs 存储静态资源,加速资源的访问,可不要做坏事哟!

之前看到一个新闻,有一个家伙将某个电视剧上传到了 npmjs 仓库中,由于 npmjs 有一些 cdn 支持,直接将薅别人的羊毛,真的是太不讲武德了,哈哈哈,真是太有才了。

npmjs 是一个 js 项目仓库分发共享平台,允许全世界的 nodejs 爱好者将创建的项目推送到仓库中,类似 java 项目的 Maven 中央仓库。

那么我们如何将我们的静态资源上传上去呢?其实比较简单,也就分 3 步:

  1. 拥有一个 npmjs 的账号

  2. 创建一个项目

  3. 登录账号并推送项目

创建 npmjs 账号

这个应该没啥难度啊,不细讲了,直接自己注册即可。

npm | Homeicon-default.png?t=O83Ahttps://www.npmjs.com/

创建一个项目

创建项目也比较简单,你本地安装好 nodejs, npm 直接找个目录初始化一个 nodejs 项目即可。

注:如果不会安装 nodejs, npm 我前面的文章有介绍到,可以翻一翻,还有更多实用的文章哟!

mkdir npm-pub-test
cd npm-pub-test
npm init -y

touch index.js

会创建一个默认的 package.json 里面自动填充了一些字段,比如 name, version

默认创建的项目 name 会根据 当前所在的目录进行命名,这个名称是可以更改的,在推送到 npmjs 时这个名称有一些要求(不能重名),我们首先要知道一下 npmjs 的 scope 的概念。

官网解释:About scopes | npm DocsDocumentation for the npm registry, website, and command-line interfaceicon-default.png?t=O83Ahttps://docs.npmjs.com/about-scopes

默认的免费账号是不支持私有 仓库 的, 必须是 public 的,public 也分为 unscopedscoped, 这两个怎么理解呢?其实可以理解为 *全局仓库**带@用户名前缀的仓库* 两种

  • unscoped, 不带 @用户名前缀 的,在 install 的时候直接是 npm i element-ui -S

  • scoped, 都是带有用户名前缀的,在 install 的时候是 npm i @antv/g6 -S

unscoped 要求全局唯一性,考验你取名的能力了,建议咱们普通用户可以使用 scoped , 不用操心重名问题,当然不带 @ 符号感觉好像逼格更高点吧。

可以在 npm init 的时候是可以直接指定 --scope=@你的用户名 的,如下:

npm init --scope=@chinaxiang -y

给 index.js 塞点内容

vim index.js
exports.printMsg = function() {
  console.log("This is a message from the demo package");
}

登录账号

这里的登录指命令行登录,要先把之前配置的 registry mirror 去掉,如果不去掉会登录到 mirror 上(不支持登录的),所以请保留默认的 registry=https://registry.npmjs.org/

执行 npm login ,会让你输入 username, password, email 还有 one-time password.

one-time password 是邮箱接收到的一串数字。

登录成功的提示

查看当前登录用户

发布项目

然后执行 publish 指令,默认 publish 指令是发布为 私有 项目的,当然我们免费用户是没有权限的,需要加一个额外的参数 --access=public

npm publish --access=public

下面是发布成功的记录

CDN 加速

上传到 npmjs 中的资源会拥有 CDN 的加持,如下是两个不错的站点

例如我发布上去的 js 就可以通过下面的地址直接访问

另外,由于 npmjs 没法存放私有包,阿里云提供的云效是个不错的选择,作为个人或小团队的私有包保管平台不要太爽,回头有空再为大家介绍云效吧,也可以自行到下面的地址去看:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

END

好了,今天的分享就到这里,欢迎到我的个人站点 huangyanxiang.com 或者 个人公&号:新质程序猿 查看更多内容。

感谢大家的阅读,如果有任何异议的地方,欢迎指正,也欢迎大家与我做朋友!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值