• 发布Npm包到GitHub Packages


    发布Npm包到GitHub Packages

    Github集成了GitHub Packages功能,目前提供了NpmDockerMavenNuGetRubyGems的包管理工具,可以通过Github管理开源包,本文主要介绍使用GitHub Packages发布Npm包。

    发布

    首先需要制作一个package.json文件,可以通过npm init命令根据提示生成一个package.json文件。
    在这里插入图片描述
    这是已经发布好的package.json文件,作为示例,需要注意的是name字段、publishConfig字段与repository字段的配置,在GitHub Packages发布的包属于作用域包,需要使用@username/package-name的形式作为name字段,publishConfig是发布到GitHub Packages的必填且值固定的字段,repository字段是必须要指定的仓库url,可以发布多个包到一个仓库,可以参考https://github.com/WindrunnerMax/Asse/packages/292805

    {
      "name": "@WindrunnerMax/mini-program-cli",
      "version": "1.1.0",
      "description": "Uniapp小程序开发脚手架",
      "author": "Czy",
      "license": "MIT",
      "bin": {
        "mini-program": "bin/cli.js"
      },
      "scripts": {
        "test": "echo "Please use HbuildX import this project""
      },
      "engines": {
        "node": ">= 8"
      },
      "publishConfig": {
        "registry": "https://npm.pkg.github.com/WindrunnerMax"
      },
      "repository": "https://github.com/WindrunnerMax/Asse"
    }
    

    下面需要授权,首先在Github申请一个Tokenuser - setting - Developer settings - Personal access tokens - Generate new token,生成一个用以发布Npm包的Token,需要选择权限,以下权限必选:
    在这里插入图片描述
    接下来将Token添加至~/.npmrcwin用户是路径C://users/current-user

    //npm.pkg.github.com/:_authToken=TOKEN
    

    或者使用npm login命令进行授权,注意用户名要全部小写,Token的输入是以密码的方式输入,不会显示。

    npm login --registry=https://npm.pkg.github.com
    > Username: USERNAME
    > Password: TOKEN
    > Email: PUBLIC-EMAIL-ADDRESS
    

    接下来在项目的根目录添加一个~/.npmrc文件,并添加如下配置。

    registry=https://npm.pkg.github.com/WindrunnerMax
    

    接下来就可以使用npm publish命令发布包。

    npm publish --access=public
    

    安装

    需要注意的是,无论发布包还是安装包都需要授权,也就是上述生成Token以及配置的过程,否则无法安装指定的包,以我发布的包为例,执行安装。

    npm install -g @windrunnermax/mini-program-cli@1.1.0 --registry=https://npm.pkg.github.com/
    

    如果使用Github安装Npm包很慢的话,可以考虑配置代理,同样是在~/.npmrc文件中加入配置。

    proxy=socks5://127.0.0.1:1080
    https-proxy=socks5://127.0.0.1:1080
    

    Github

    https://github.com/WindrunnerMax
    
  • 相关阅读:
    162 基于UDP协议的socket套接字编程
    161 解决粘包问题
    160 粘包问题
    159 模拟ssh远程执行命令
    158 Socket抽象层
    157 基于TCP协议的socket套接字编程
    C++:查找字符串字串并替换
    C++:查找字符串字串并替换
    请问c++中的#include "stdafx.h"是什么意思?
    请问c++中的#include "stdafx.h"是什么意思?
  • 原文地址:https://www.cnblogs.com/WindrunnerMax/p/13218493.html
Copyright © 2020-2023  润新知