关于javascript:发布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,须要抉择权限,以下权限必选
hub申请一个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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理