如何釋出一個npm包
1. 準備工作
-
安裝node
-
去npm官網註冊一個賬號
2.本地建立一個專案包
-
建立一個資料夾,自定義名稱,此處設為 cm-first-npm-demo
-
命令列進入資料夾下,輸入
npm init -y
快速初始化專案,或輸入npm init
並依次輸入以下資訊欄位名 欄位含義 package name 包名 version: (1.0.0) 包的版本,預設是1.0.0 description 包的描述資訊 entry point 入口檔案,預設是 index.js test command 測試命令,可直接回車忽略 git repository git倉庫地址,可直接回車忽略 keywords 索引關鍵字,便於別人搜尋到你的包 author 作者 license 許可資訊,直接回車 填完之後,會有以下提示資訊
About to write to xxx/package.json: { "name": "xxx", "version": "1.0.0", "description": "一個npm測試包", "main": "index.js", "scripts": { "test": "" }, "author": "", "license": "" } Is this OK? (yes)
直接回車,我們會看到資料夾下有個 package.json 檔案,如果你想修改包的資訊,可直接在此檔案中修改儲存。
-
建立一個 index.js 檔案,寫入一個加法函式作為測試函式,程式碼如下:
module.exports.add = function add (a, b) { return a + b }
3.釋出包
-
以管理員身份執行命令列
-
修改npm倉庫源,輸入
npm config set registry https://www.npmjs.com/
注:包釋出完成後切回淘寶源
npm config set registry http://www.npmjs.org
-
進入 cm-first-npm-demo
npm login
填寫使用者名稱、密碼、郵箱後完成登入
-
釋出包
npm publish
-
登入npm官網檢視包是否釋出成功
4. 測試包
-
建立一個資料夾,自定義名稱,此處設為 npm-test,作為引入釋出包的測試專案
-
命令列進入資料夾下,快速初始化專案
npm init -y
-
安裝我們所釋出包
npm i cm-first-npm-demo -S
-
建立 index.js 檔案,引入釋出包,程式碼如下
const npmDemo = require('cm-first-npm-demo') console.log(npmDemo.add(33, 44))
-
修改 package.json 檔案,在script中新增
"start": "node index.js"
,如"scripts": { "start": "node index.js" }
-
輸入
npm start
,輸出 77,包引入成功
5. 可能出現的問題
-
登入時:
解決方式:切換到管理員
解決方式:輸入郵箱接收到的一次性驗證碼。
-
安裝包時
解決方式:
(1)等個十幾分鍾,登入https://npmmirror.com/,檢視自己的包是否已被同步。
(2)如果已同步,修改npm倉庫源,再次安裝
npm config set registry http://www.npmjs.org npm i cm-first-npm-demo -S
6. 有關包的匯入
在上面的測試包中,我們使用 module.exports
進行匯出,require
進行匯入,那麼使用 module.exports
或 exports
進行匯出,能否使用 import
進行匯入呢?
因為node使用的是CommonJs規範,不支援直接在js中使用 import
,故我們在測試專案 npm-test 下新建檔案 index.mjs,並寫入以下程式碼
import npmDemo from 'cm-first-npm-demo'
console.log(npmDemo.add(33, 44))
命令列進入資料夾下,輸入
node index.mjs
輸出如下
所以,對於釋出的包,如果我們使用 module.exports
或 exports
進行匯出,既能使用 require
,也能使用 import
進行匯入。