NPM图床的使用

本文大致内容转自 糖果屋《NPM 图床的使用技巧》有些许部分经过修改。

前言

因为 jsdelivr 的证书被吊销,所以在国内速度变慢,无法满足日常的使用。所以将图床从 github 更换到 NPM,通过其他的 cdn 加速节点进行加速。

注册

  1. 首先需要注册一个 npm 的账号。访问 npm 注册页面
1644724099484.png
  1. 完成邮箱验证,注册完成后进入账号管理界面:头像 ->Account,拉倒最上方,你会看到 You have not verified your email address 字样的提示,点击以后按提示步骤验证你的邮箱。
1644724120524.png
  1. 将你之前在 github 的图床仓库,在本地合适的位置把它 clone 下来。找个空文件夹打开终端输入
git clone git@github.com:[username]/[AssetsRepo].git
#或者
git clone https://github.com/[username]/[AssetsRepo].git
  1. 在 clone 下来的 [AssetsRepo] 文件夹内打开终端,输入以下指令切换回原生源
npm config set registry https://registry.npmjs.org
  1. 添加本地 npm 用户设置
# 仅第一次使用需要添加用户,之后会提示你输入你的npm账号密码以及注册邮箱
npm adduser
# 非第一次使用直接登录即可,之后会提示你输入你的npm账号密码以及注册邮箱
npm login
  1. 运行 npm 初始化指令,把整个图床仓库打包,按照指示进行配置,注意需要事先确认你的包名没有和别人已发布的包重复,可以在 npm 官网搜索相应包名,搜不到就说明还没被占用。
npm init

20220106084921.png
最后会输出一段 package.json,请求确认,输入 yes 即可。

  1. 然后输入发布指令,我们就可以把包发布到 npm 上了。
npm publish
  1. jsdelivr+npm 的图片引用和 jsdelivr+github 很相似,例如我在 [AssetsRepo] 仓库里存放的 /img/index.png
# jsDelivr+github链接
https://cdn.jsdelivr.net/gh/[GithubUserName]/[AssetsRepo]/img/index.png
# jsDelivr+npm链接
https://cdn.jsdelivr.net/npm/[NpmPackageName]/img/index.png

可以看到 Npm 只需要提供包名即可。这也是一开始要求包名不重复的原因之一

jsDelivr+Npm 依然有 100MB 的包大小限制,但是 NPM 有丰富的国内节点。可以挑选一个使用。个人推荐知乎的。没有大小限制,而且也很稳定。

【jsd出品,网宿国内节点】
https://cdn.jsdelivr.net/npm/:package@:version/:file
【知乎出品,网宿国内节点】
https://unpkg.zhimg.com/:package@:version/:file
【百度出品,网宿国内节点】
https://code.bdstatic.com/npm/:package@:version/:file
【饿了么出品,网宿国内节点】推荐使用
https://npm.elemecdn.com/:package@:version/:file

当然你也可以利用 unpkg 自建。(UNPKG 是一个内容源自 npm 的全球快速 CDN。它部署在 cloudflare 上,在大陆地区访问到的是香港节点。所以速度也不错。)

https://unpkg.com/:package@:version/:file
  1. 如果每次都要在本地进行 npm publish 的话,npm 的提交是整个包一起上传的,不存在增量更新,耗时不说,而且还往往需要架梯子才能正常上传。所以我们可以把它交给 github action 来完成。

npm 官网 ->头像 ->Access Tokens->Generate New Token, 勾选 Automation 选项,Token 只会显示这一次,之后如果忘记了就只能重新生成重新配置了。
1644724174206.png
1644724182245.png
在 github 的 [AssetsRepo] 仓库设置项里添加一个名为 NPM_TOKEN 的 secrets,把获取的 Npm 的 Access token 输入进去。
1644724189985.png
在本地的 [AssetsRepo] 文件夹下新建 [AssetsRepo]/.github/workflows/main.yml

name: Node.js Package

on:
  push:
    branches:
      - main

jobs:
  publish-npm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: "12.x"
          registry-url: https://registry.npmjs.org/
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}

在本地的 [AssetsRepo] 文件夹下打开终端,运行以下指令,上传新增内容至 github,即可触发部署。

# 将更改提交
git add .
git commit -m "npm publish"
# 更新package版本号
npm version patch
# 推送至github触发action
git push

此处的四行指令顺序严格。
每次更新 npm 图床都需要先修改 [AssetsRepo]\package.json 里的 version, 也就是版本号。
而 npm version patch 即为更新 package.json 里的版本号的指令,效果是末尾版本号 + 1,例如 0.0.1=>0.0.2、1.1.3=>1.1.4。免去了打开 package.json 再修改版本号的麻烦。(大版本更新还是需要手动改的)
更新 npm 图床务必要记得更新 package.json 里的版本号!

Invitation
HuRan
854262623
created:04/03/2022
Welcome to Candyhome

Use this card to join the candyhome and participate in a pleasant discussion together .

Welcome to Knlde's candyhome,wish you a nice day .

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论