目錄:
一欧芽、npm和github package的基本概念二面氓、常規(guī)上傳至npm公共注冊表方法(推薦使用nrm進(jìn)行鏡像切換)
- npm publish
- yarn publish
三、推送至github npm package方法
一叉抡、npm和github package的基本概念
- npm注冊表:可理解為npm的官方公共注冊表的各種鏡像鏈接
- 國內(nèi)常用鏡像(淘寶鏡像): https://registry.npm.taobao.org
- npm官方鏡像: https://registry.npmjs.org
- yarn 官方鏡像:https://registry.yarnpkg.com/
- 個人github鏡像:https://npm.pkg.github.com/OWNER (OWNER為github個人賬戶名稱)
npm package:在npm官網(wǎng)的公共注冊表中绵疲,上傳的modules
-
github package:github可支持上傳多種類型打包項目。且因github已收購npm摹量,所以可以上傳包括npm類型在內(nèi)的各種package
倉庫首頁即可找到github package位置
github package類型
- 參考文檔
- github npm package 英文參考文檔
-
github npm package 中文參考文檔
備注:中文文檔可能存在翻譯問題涤伐,請以英文版本為主
二馒胆、常規(guī)上傳至npm公共注冊表方法(npm publish / yarn publish):
- 使用NPM鏡像源進(jìn)行上傳
// 切換注冊表至npm官方注冊表
// 1.1. npm注冊用戶(若無npm賬號)
npm adduser --registry https://registry.npmjs.org/
// 1.2. npm 登錄(若已有npm賬號)
npm login --registry https://registry.npmjs.org/
// username和password請?zhí)钊雗pm用戶名和密碼
// 2. npm發(fā)布package
npm publish --registry https://registry.npmjs.org/
// 備注:其他相關(guān)方法:
npm whoami // 查詢當(dāng)前登錄賬號
npm config set registry https://registry.npmjs.org/ // 全局修改npm注冊表
- 使用yarn鏡像源和yarn命令進(jìn)行上傳(對于使用npm鏡像經(jīng)常出現(xiàn)網(wǎng)絡(luò)連接失敗的情況下,建議嘗試yarn)
// 1. 切換至yarn鏡像源(nrm命令詳解位于下方)
nrm use yarn
// 2. 登錄npm賬號凝果,同樣需要輸入
yarn login
// 3. 發(fā)布
yarn publish
操作
發(fā)布結(jié)果
- 推薦切換注冊表方法:nrm包
// 1. 全局安裝nrm包
$ npm install -g nrm
// 2. 查看可選npm源
$ nrm ls
// 顯示結(jié)果:
* npm -------- https://registry.npmjs.org/
yarn ------- https://registry.yarnpkg.com/
cnpm ------- http://r.cnpmjs.org/
taobao ----- https://registry.npm.taobao.org/
nj --------- https://registry.nodejitsu.com/
npmMirror -- https://skimdb.npmjs.com/registry/
edunpm ----- http://registry.enpmjs.org/
// 3. 切換npm源(以淘寶鏡像為例):
$ nrm use taobao
// 顯示結(jié)果:
Registry has been set to: https://registry.npm.taobao.org/
// 4. 測試各鏡像源速度:
$ nrm test
// 顯示結(jié)果
npm ---- Fetch Error
* yarn --- 6281ms
cnpm --- 2330ms
taobao - 1865ms
nj ----- Fetch Error
npmMirror 5762ms
edunpm - Fetch Error
// 指定某一鏡像源進(jìn)行測試国章,建議在上傳先測試速度
$ nrm test taobao
// 顯示結(jié)果
taobao - 187ms
// 注意:若當(dāng)前項目根文件夾存在.npmrc文件,且文件中已配置registry時豆村,使用nrm進(jìn)行全局切換對當(dāng)前項目無效
- 注意:
對于常規(guī)方法,國內(nèi)使用https://registry.npmjs.org/存在可能無法訪問等網(wǎng)絡(luò)情況
三骂删、推送至github npm package方法:
參考文檔:Configuring npm for use with GitHub Packages
(該文檔有中文版本掌动,可網(wǎng)頁上方進(jìn)行切換)
- 項目文件的根文件夾,創(chuàng)建一個.npmrc文件宁玫,并寫入以下內(nèi)容:
registry=https://npm.pkg.github.com/OWNER
// 備注:OWNER部分寫入你的github用戶名粗恢,代表指向你的github作用域
- package.json添加倉庫信息和發(fā)布配置信息,以保證多次發(fā)布均至同一倉庫:
"repository" : {
"type" : "git",
"url": "ssh://git@github.com/OWNER/REPOSITORY.git",
"directory": "packages/name"
},
"publishConfig": {
"registry":"https://npm.pkg.github.com/"
},
- 修改package.json中package名稱:
"name": "@OWNER/project_name"
// 其中OWNER為github用戶名欧瘪,project_name是該package名稱
上傳前需檢查package.json中的版本號是不是和已有版本重復(fù)眷射,例如
"version": "0.1.0"
-
上傳項目/更新項目至github倉庫:
上傳項目至倉庫 -
設(shè)置github token以用于發(fā)布package到github:
6.1. 點(diǎn)擊用戶頭像,選擇settings
6.2. 選擇Developer Settings
Developer Settings
6.3. 選擇Personal Access Token
Personal Access Token
6.4. 點(diǎn)擊右上角Generate New Token
6.5 填寫該token相關(guān)描述佛掖,并選中所有項
6.6 點(diǎn)擊底部Generate Token妖碉,則會生成一個github token,該token僅此次會顯示內(nèi)容芥被,請注意保存欧宜,刷新頁面后就會隱藏
填寫所有信息,并生成token
生成token結(jié)果(已做脫敏處理) -
前往倉庫設(shè)置拴魄,將token放入該倉庫配置中:
7.1. 打開倉庫設(shè)置
倉庫設(shè)置
7.2. 選擇settings中的Secrets
冗茸,點(diǎn)擊New repository secret
新建secrets.png
7.3. 填入token至value
將token填入value欄
新增成功 npm登錄
npm login --scope=@OWNER
// OWNER為個人用戶名
// username請?zhí)钊肽愕膎pm用戶名(不是github用戶名)
// password請?zhí)钊肷厦嫔傻膅ithub token
// email請?zhí)钊豚]箱地址
npm login至個人github
- npm 發(fā)布package:
npm publish
發(fā)布成功
-
前往網(wǎng)頁中查看:
倉庫首頁出現(xiàn)package信息
點(diǎn)擊查看該npm包詳細(xì)內(nèi)容 注意:該方法產(chǎn)生的npm包,不會出現(xiàn)在npm官網(wǎng)上