引言:
前端微服務的流行趨勢券敌,為了能做到獨立開發(fā)蚀苛、獨立部署挖垛,不同微服務(子項目)公用組件的使用使npm包變得不可或缺
重要概念 scope:
包的范圍(作用域)
準備工作:
1.npm注冊賬號
2.如果是發(fā)布組織范圍的包迅皇,需要先創(chuàng)建一個組織
3.倉庫地址為npm春宣,如是cnpm酵颁,用nrm切換
npm i nrm -g(安裝)
nrm ls(查看倉庫地址)
nrm use npm(切換)
發(fā)布包:
一.發(fā)布一個沒有作用域(unscoped)的公共包
1.在命令行上,為包創(chuàng)建一個目錄:
????mkdir my-test-package
2.導航到包的根目錄:
????cd my-test-package
3.如果您使用git來管理軟件包代碼月帝,請在軟件包根目錄中運行以下命令躏惋,替換git-remote-url為軟件包的git遠程URL:
????git init?
????git remote add origin git://git-remote-url
4.在程序包根目錄中,運行該npm init命令嚷辅,生成package.json文件
5.創(chuàng)建一個README文件(必須)說明您的包代碼是什么以及如何使用它簿姨,和.npmignore或.gitignore文件(非必須)來阻止發(fā)布到注冊表
6.編寫包的代碼
7.發(fā)布:在根目錄輸入
????npm publish
登錄:由于沒有登錄npm,發(fā)布的時候肯定會報錯簸搞,輸入 npm adduser扁位,然后根據提示輸入用戶名、密碼和郵箱趁俊,登錄之后重新發(fā)布就行了域仇。
二.發(fā)布一個有作用域(scope)的公共包
如果您使用npmrc?管理多個注冊表上的帳戶,請在命令行上切換到相應的配置文件:
npmrc <profile-name>
1.在命令行上寺擂,為包創(chuàng)建一個目錄:
????mkdir my-test-package
2.導航到包的根目錄:
????cd my-test-package
3.如果您使用git來管理軟件包代碼暇务,請在軟件包根目錄中運行以下命令,替換git-remote-url為軟件包的git遠程URL:
????git init
????git remote add origin git://git-remote-url
4.在程序包根目錄中沽讹,運行npm init命令并將作用域傳遞給scope標志:
????對于組織范圍的包般卑,請?zhí)鎿Qmy-org為組織的名稱:
????npm init --scope=@my-org
????對于用戶范圍的包武鲁,請?zhí)鎿Qmy-username為您的用戶名:
????npm init --scope=@my-username
5.創(chuàng)建一個README文件(必須)說明您的包代碼是什么以及如何使用它爽雄,和.npmignore或.gitignore文件(非必須)來阻止發(fā)布到注冊表
6.編寫包的代碼
7.發(fā)布:在根目錄輸入
????npm publish --access public(之后的版本迭代可使用npm publish)
三.發(fā)布一個私有包
步驟和 二.發(fā)布一個有作用域(scope)的公共包 一樣,但是第7是用npm publish發(fā)布沐鼠。
注意:在發(fā)布私有用戶范圍的npm包之前挚瘟,您必須注冊一個付費的npm用戶帳戶叹谁。此外,要發(fā)布私有組織范圍的包乘盖,您必須創(chuàng)建一個npm用戶帳戶焰檩,然后?創(chuàng)建一個付費的npm組織。
安裝包:
npm官網找包订框,然后npm-i-packageName
更新包:
更改包內容重新發(fā)布析苫,必須要改動其version,再npm publish穿扳。
可以在package.json里直接改動version衩侥,也可以使用變更版本號的命令:npm version <major | minor | patch>
npm采用語義化版本,共三位矛物,以’.’隔開茫死,從左至右依次代表:主版本(major)、次要版本(minor)履羞、補丁版本(patch)峦萎。
例如:1.0.0=》major.minor.patch
棄用包:
如果您不再希望維護包,或者您希望鼓勵用戶更新到新版本或不同版本忆首,則可以棄用它爱榔。
棄用整個包:
? ??npm deprecate <package-name> "<message>"
棄用單個版本的包:
? ??npm deprecate <package-name>@<version> "<message>"
刪除包(unpublish):
為了從npm注冊表中永久刪除包(或包版本),作為包所有者或協(xié)作者雄卷,您可以在初始發(fā)布后的72小時內從命令行取消發(fā)布它搓蚪。
刪除整個包:
? ??npm unpublish <package-name> -f
刪除單個版本的包:
? ?npm unpublish <package-name>@<version>