發佈Npm包到GitHub Packages
Github
集成了GitHub Packages
功能,目前提供了Npm
、Docker
、Maven
、NuGet
、RubyGems
的包管理工具,可以通過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
申請一個Token
,user - setting - Developer settings - Personal access tokens - Generate new token
,生成一個用以發佈Npm
包的Token
,需要選擇權限,以下權限必選:
接下來將Token
添加至~/.npmrc
,win
用戶是路徑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/[email protected] --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