自动化发布npm包小记

2023-09-21 15:25:09

1.注册npm账号

打开npm官网,并注册自己的npm账号

2.申请AccessToken

1.登录npm官网,登录成功后,点开右上角头像,并点击Access Tokens选项
access token
2.点开Generate New Token下拉框,点击Classic Token(和Granular Access Token有什么区别,请自行查验?)
classic token
3.填写token信息,选择token类型为Automation(可以避免2FA校验),保存申请的token信息(等下会用到)

3.github新建代码仓库

在github上面创建新的空仓库
github仓库

4.修改仓库设置

1.进入新建的代码仓库,点击仓库tab选项卡的Settings
在这里插入图片描述
2.点开Secrets and variables选项卡,点击Actions选项,点击对应页面的New repository secret按钮
在这里插入图片描述
3.新建名称为NPM_TOKEN的secret, 并将刚刚申请到的npm token(前面要你保存的token)填入secret字段
secret

5.新增ci文件

在代码根目录新建.github/workflow/ci.yml文件,文件内容如下

name: CI
on:
  push:
    branches:
	  # 触发ci/cd的代码分支
      - master
jobs:
  build:
    # 指定操作系统
    runs-on: ubuntu-latest
    steps:
      # 将代码拉到虚拟机
      - name: Checkout repository
        uses: actions/checkout@v2
      # 指定node版本
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16.x'
          registry-url: 'https://registry.npmjs.org'
      # 依赖缓存策略
      - name: Cache
        id: cache-dependencies
        uses: actions/cache@v3
        with:
          path: |
            **/node_modules
          key: ${{runner.OS}}-${{hashFiles('**/pnpm-lock.yaml')}}
      # 安装pnpm
      - name: Install pnpm
        run: npm install -g pnpm@7.5.0
      # 依赖下载
      - name: Installing Dependencies
        if: steps.cache-dependencies.outputs.cache-hit != 'true'
        run: pnpm install
      # 打包
      - name: Running Build
        run: pnpm run build
      # 测试
      - name: Running Test
        run: pnpm run test-unit
      # 发布
      - name: Running Publish
        run: npm publish
        env:
          # NPM_TOKEN is access token
         NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

npm代码如下

name: CI
on:
  push:
    branches:
      # 触发ci/cd的代码分支
      - master
jobs:
  build:
    # 指定操作系统
    runs-on: ubuntu-latest
    steps:
      # 将代码拉到虚拟机
      - name: Checkout repository
        uses: actions/checkout@v2
      # 指定node版本
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16.x'
          registry-url: 'https://registry.npmjs.org'
      # 依赖缓存策略
      - name: Cache
        id: cache-dependencies
        uses: actions/cache@v3
        with:
          path: |
            **/node_modules
          key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}
      # 依赖下载
      - name: Installing Dependencies
        if: steps.cache-dependencies.outputs.cache-hit != 'true'
        run: npm install
      # 打包
      - name: Running Build
        run: npm run build
      # 测试
      - name: Running Test
        run: npm run test-unit
      # 发布
      - name: Running Publish
        run: npm publish
        env:
          # NPM_TOKEN is access token
         NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

6.推送代码至github

在代码目录初始化git,并将代码推送到刚刚github上面新建的代码仓库master分支,会自动触发ci/cd进行自动化发包

更多推荐

如何完美通过token获取用户信息(springboot)

1.什么是Token?身份验证令牌(AuthenticationToken):在身份验证过程中,“token”可以表示一个包含用户身份信息的令牌。例如Token(JWT)是一种常见的身份验证令牌,它包含用户的身份信息(例如用户名或用户ID)以及其他相关信息,如权限或过期时间。无意义令牌token,这种一般在获取后通过n

芯片SoC设计你了解吗?

数字IC设计根据岗位性质一般包含SOC设计,前端设计,ASIC设计,逻辑设计,IP设计,CPU设计等。有人说:做IP设计就是翻译官,做SOC设计就是连连看。SoC设计是做什么的?与IP设计有什么不同?IP设计工程师每天的工作,编码,debug,接口定好了,时钟只给一个,内部不让分频。不用做过异步处理。按照公司的编码规范

js实现短信验证码一键登录

前言短信验证码一键登录是一种方便快捷的登录方式,用户只需输入手机号码,然后接收到手机短信验证码并自动填入验证码框,即可完成登录操作。本文将介绍短信验证码一键登录的原理,并给出一个简单的示例说明。短信验证码一键登录的原理用户输入手机号码:用户在登录界面输入手机号码,并点击获取验证码按钮。发送验证码:前端通过API向后端发

Linux--线程(与进程区别)

Linux线程1、线程与进程进程可以看成只有一个控制线程:一个进程同时只做一件事情。有了多个控制线程后,可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。进程是程序执行时的一个实例,是分配系统资源(CPU时间、内存等)的基本单位。进程本身不是基本运行单位,而是线程的容器。一个进程可以拥有多个线程。进程

【智能家居-大模型】行业专题报告:ChatGPT等大模型催化智能家居行业发展

(报告出品方/作者:华安证券,马远方)1智能家居:ChatGPT等大模型为行业发展带来新机遇1.1现状:智能家居产品的用户体验(交互能力、智能化水平)及安全性待提升智能家居:智能化的家庭系统,增加生活便利、舒适、安全。智能家居是指通过互联网技术和智能设备,将家庭设备、家庭电器、家庭安全等各种家居设施连接,实现智能控制、

计算机竞赛 深度学习+python+opencv实现动物识别 - 图像识别

文章目录0前言1课题背景2实现效果3卷积神经网络3.1卷积层3.2池化层3.3激活函数:3.4全连接层3.5使用tensorflow中keras模块实现卷积神经网络4inception_v3网络5最后0前言🔥优质竞赛项目系列,今天要分享的是🚩**基于深度学习的动物识别算法**该项目较为新颖,适合作为竞赛课题方向,学

Servlet

1Servlet1.1概念Servlet是JavaEE规范之一。规范就是接口Servlet是JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。Servlet服务于HTTP协议的服务端的一个小程序,“接收请求,解析请求,根据请求执行业务逻辑,做出响应”1.2实现功

【Spatial-Temporal Action Localization(七)】论文阅读2022年

文章目录1.TubeR:TubeletTransformerforVideoActionDetection摘要和结论引言:针对痛点和贡献模型框架TubeREncoder:TubeRDecoder:Task-SpecificHeads:2.HolisticInteractionTransformerNetworkforA

使用vue-cli搭建spa项目

目录一.什么是vue-cli二.安装vue-cli三.使用脚手架vue-cli(2.X版)来构建项目四.vue项目结构说明五.基于spa项目完成路由六.基于spa项目完成嵌套路由好啦!今天的分享就到这啦!!一.什么是vue-cliVueCLI是一个基于Vue.js的官方脚手架工具,用于快速启动、构建和管理Vue.js项

【论文阅读 05】图像异常检测研究现状综述

1图像异常检测任务图像异常检测任务根据异常的形态可以分为定性异常的分类和定量异常的定位两个类别.定性异常的分类:整体地给出是否异常的判断,无需准确定位异常的位置。如图2左上图所示,左侧代表正常图像,右侧代表异常图像,在第1行中,模型仅使用服饰数据集中衣服类型的样本进行训练,则其他类别的样本图像(鞋子等)对模型来说都是需

论文阅读 - Natural Language is All a Graph Needs

目录摘要IntroductionRelatedWork3InstructGLM3.1Preliminary3.2InstructionPromptDesign3.3节点分类的生成指令调整3.4辅助自监督链路预测4Experiments4.1ExperimentalSetup4.2MainResults4.2.1ogbn

热文推荐