windows下,修改C:UsersAdministrator下的文件.npmrc,將registry改成淘寶鏡像地址,registry=https://registry.npm.taobao.org/。vue
項目根目錄下執行命令行npm init
,各類參數根據本身需求填寫,生成package.json文件。webpack
npm init
後,添加要發佈的包的相關內容(什麼都不加也是能夠發佈的)。npm adduser --registry http://registry.npmjs.org
,輸入npm官網申請的帳戶名,密碼和郵箱(由於公共npm倉庫已經改成淘寶鏡像地址,因此--registry http://registry.npmjs.org
不能省略)。npm publish --registry http://registry.npmjs.org
將包發佈到npm上。登陸到npm官網,點擊右上角頭像,選中Profile就能夠看到發佈的包。修改相關的內容後,修改包目錄下的package.json文件,修改version版本號,好比以前是1.0.0,修改成2.0.0。而後執行npm publish --registry http://registry.npmjs.org
就能夠將包更新到npm上。es6
npm install 包名稱 -g
npm install 包名稱 --save
。npm install 包名稱 --save-dev
。好比說以前咱們發佈到npm上的包名稱npm-test,版本爲1.0.0,未更新以前npm install npm-test --save-dev
安裝的就是1.0.0版本的。新發布了一個可用的版本2.0.0後,想更新到最新的版本,運行npm update npm-test
,不起做用。緣由是由於npm規定了https://docs.npmjs.com/misc/semver#prerelease-identifiers,看不太懂,只知道是這個緣由☹web
當咱們使用別人的包的時候,常常會疑惑,是該npm install xxx --save
仍是npm install xxx --save-dev
。前者是安裝包而且更新package.json的dependencies,後者是安裝包並更新package.json的devDependencies,若是隻是使用別人的包,而不將包發佈到npm上,兩種方式均可以正常使用。可是當咱們要把咱們的包發佈到npm上時,必定要區分好dependencies和devDependencies的區別。
比方說咱們以前發佈的npm-test包,包中須要使用了vue,那是要執行npm install vue --save
仍是npm install vue --save-dev
呢?當別人使用咱們這個包的時候,前提vue這個包已經安裝了,可是用戶不會去看咱們的包依賴哪些包,而後一一得手動去安裝這些依賴包。因此當用戶 npm insall npm-test --save
要使用咱們這個包的時候,應該也要自動安裝vue這個包。而當咱們的包中安裝vue的時候,使用npm install vue --save
就能夠了,用戶使用咱們的包的時候,也會安裝vue這個包。若是咱們包的相關的功能代碼是用es6寫的,而且安裝了babel,webpack等相關的包,這些包的安裝應該使用npm install vue --save-dev
,當用戶使用咱們的包的時候,不會安裝這些包。npm