自定義npm包的建立、釋出、更新和撤銷
大綱
1、準備
2、自定義npm包
3、釋出自定義npm包
4、引用npm包
5、更新npm包
6、撤銷釋出的npm包
簡書原文
https://www.jianshu.com/p/d737bc5df5b7
1、準備
1.1、註冊npm使用者
npm官網(https://www.npmjs.com/)
1.2、安裝nodeJs
Node.js官網(http://nodejs.cn/)
1.3、編輯器
我使用的是編輯器vscode進行操作的,讀者也可以開啟控制檯進入到對應目錄中進行操作
2、建立自己的npm包
2.1、建立一個空的資料夾,進入
2.2、建立一個預設的npm包
在當前資料夾中執行控制檯命令:
npm init
1、執行npm init之後需要一步一步的填寫對應資訊,這些資訊也就是你的npm的資訊,在生成的package.json中會自動填入(如下圖)
2、可以執行npm init -y, 這樣就會幫你建立一個預設配置的package.json而不需要自己一步步配置
//預設配置的package.json如下所示: { "name": "npm-demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
2.3、建立一個index.js檔案作為包入口檔案
當然這是預設的入口檔案,如果有其他想法的話,完全可以在package.json中進行修改。
2.4、index.js
index.js就是你這個包的入口檔案,你可以在裡面做你想要的操作
2.5、node index.js
最簡單的內容就是列印一個日誌,這時候你可以通過執行node index.js來執行index.js中的內容,可以看到控制檯中打印出了你想要的資訊
2.6、改進index.js
當然我們不可能就為了列印一個日誌而建立一個npm包,我們需要可以引入這個npm包並呼叫這個包中的一些方法,因此我們隊這個npm包中的index.js中的內容進行完善一些。
exports.testDemo = function() { console.log("this is test demo!!!!!!"); };
3、釋出npm包
3.1、登入npm(新增使用者)
新增npm使用者,或者說登入你的npm賬號
執行: npm adduser
然後會提示你輸入你的使用者名稱和密碼以及郵箱,如果輸入正確會提示你成功登入
3.2、npm publish
當你成功登入之後,就可以釋出你的npm包了。
執行: npm publish
3.3、注意:
可能你在publish的時候會出現如下錯誤
那麼可能性有兩個:
1、你沒有執行npm adduser進行登入
2、可能你的包名重複了。
如這裡的npm-demo可能重複了所以導致無法publish上,這時最簡單的方法是改包名,加上一個特殊的標誌即可,改包名只需要對package.json中的name進行修改即可。(此處我將npm-demo改成npm-demo-crk之後再次執行npm publish就成功了)
4、引用npm包
4.1、建立一個案例
想要引用npm包首先你要有個基本的案例,建立這個案例的方法和建立npm包其實是差不多的:
執行:npm init -y
建立一個index.js的入口檔案
這樣就建立了一個案例了.
4.2、下載依賴包
建立完案例之後就是引入npm包了
執行:npm install -save-dev crk-demo-crk
(或者: npm install crk-demo-crk)
4.3、呼叫npm包中的檔案
通過require來呼叫檔案從而引用npm包中的方法
var test = require("npm-demo-crk"); test.testDemo();
4.4、執行
執行命令即可執行案例,可以看到控制檯成功呼叫了方法打印出了日誌
node index.js
5、更新npm包
5.1、更改版本號
最簡單方式無非就是改package.json關於版本
或者可以執行命令: npm version 1.0.1 同樣可以起到作用
5.2、更新版本——釋出版本
更新npm包同樣是執行npm publish即可,
可以看到publish的包已經更新了
5.3、更新依賴包
同樣是執行: npm install -save-dev crk-demo-crk
這樣會更新最新的包到node_module中
當然可能由於各種原因導致你更新的包還沒有在npm上更新或者說你更新下來的依舊是舊的包。
6、撤銷釋出的npm包
我們現在釋出的這個npm包只是測試用的或者只是用作其他作用而不是要釋出到網上真的使用的,最好還是撤銷下來。
執行命令: npm --force unpublish npm-demo-crk
需要注意的是:
1、撤銷npm包需要加上 --force強制執行才可以實現;
2、撤銷的包不能立馬再次釋出
撤銷的包不能立馬再次釋出
參考網址
https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages
https://www.jianshu.com/p/9a9ed7eaf655
https://www.cnblogs.com/marymei0107/p/6339710.html