发布与安装Github Packages
在GitHub創建一個新倉庫作為測試GitHub Package使用,我創建的倉庫地址:airglass/test-github-package。從GitHub Setting,按下圖步驟創建“Personal access tokens”(簡稱PAT)。
PAT可作為管理GitHub倉庫或其它需要授權才能使用的API的密鑰使用,發布GitHub Package對應“Write”操作,安裝GitHub Package對應”Read“操作,此兩種操作都需明確要設置“讀/寫”GitHub Package權限。如下圖,勾選“write:packages”權限后,“repo”和“read:package”權限自動勾選。
生成PAT后,不要立即刷新或關閉當前頁面,否則將再也看不到如下圖創建的PAT。停留在當前頁面完成后續步驟。
將下方這一行代碼添加到“~”家目錄下的“.npmrc”文件中,并將“ACCESS_TOKEN”替換為在上面創建的PAT。
//npm.pkg.github.com/:_authToken=ACCESS_TOKEN這是我的“~/.npmrc”文件,我已經將上面的一行代碼添加到文件的最后一行了。此時就可以關閉或刷新剛才創建PAT的頁面。
回到最一開始你創建的“test-github-package”倉庫,將倉庫代碼Clone到你的電腦上。我已經把這個測試項目clone到我的電腦上了。
在terminal中分別執行下面兩行命令:進入你的測試項目目錄內(“test-github-package”替換成你的項目目錄名);初始化NPM(-y選項表示稍后自動創建的package.json會全部使用默認值):
cd test-github-package npm init -y對package.json做一些修改。在“name”屬性的原有名稱前加上你的GitHub用戶名,并且使用“@”符號開頭,用“/”符號分隔用戶名和項目倉庫名稱。添加一個新屬性publishConfig,顧名思義,設置package要發布的位置——發布到github而不是默認的npm。如下是我對package.json所作的修改:
{"name": "@airglass/test-github-package",..."publishConfig": {"registry":"https://npm.pkg.github.com"},... }發布Github Package
回到terminal,執行“npm publish”,等待一會兒,名為“@airglass/test-github-package”的package就發布成功了。
在真實的項目中,未編譯的源文件一般會存放在“src”目錄,構建后的文件會放在“dist”目錄。“dist”一般不會提交到代碼倉庫,所以會在項目根目錄下添加“.gitignore”文件(類似文件黑名單),將“dist”目錄加入其中,出現在其中的文件或目錄都不會提交到GitHub倉庫。
此時用“npm publish --dry-run”命令測試發布一下(此命令不會真正發布package),發現此時發布的package中也不會包含“dist”目錄了。添加空的“.npmignore”文件(類似文件黑名單),即可覆蓋“.gitignore”對發布package時忽略那些文件產生的影響。
一句話總:對于控制哪些文件或目錄會被Git版本管理,取決于“.gitignore”文件,對于控制哪些文件或目錄會隨package發布,“.npmignore”的優先級高于“.gitignore”文件。
但我希望發布的package中只包含構建后的“dist”目錄,而不包含“src”目錄,只需在“.npmignore”中添加一行“src”,發布的包中就不會包含“src”目錄及其中的文件。
控制發布的包中需要包含哪些文件,白名單或許比黑名單更好用。“.gitignore”和“.npmignore”都是黑名單,出現在其中的文件要么不會被Git管理,要么不會發布到包。“package.json”中有個“files”屬性類似白名單,它能控制哪些文件或目錄會發布。“files”屬性的優先級高于“.npmignore”。
... "files": ["dist" ], ...安裝GitHub Package
用npm install命令安裝package,需要將”–registry“選項設置為“https://npm.pkg.github.com”,否則默認從“https://registry.npmjs.org”搜索要安裝的package,發生因找不到package而安裝失敗的問題。
npm install @airglass/test-github-package@1.0.0 --registry=https://npm.pkg.github.com也可在項目根目錄下創建“.npmrc”文件,以指定在該目錄安裝的所有packages都從這個registry源下載:
registry=https://npm.pkg.github.com用“–prefix”選項設置指定的安裝位置,如安裝到當前相對路徑下的my-packages目錄中:
npm install --prefix ./my-packages @airglass/test-github-package@1.0.0自定義安裝位置后的目錄結構如下:
my-packages |- node_modules|- @airglass|- test-github-package|- package.json|- README.md .npmrc package-lock.json總結
以上是生活随笔為你收集整理的发布与安装Github Packages的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql 不允许保存更改 解决办法
- 下一篇: Q116:PBRT-V3场景描述文件.p