大綱
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