1. 程式人生 > 其它 >如何釋出一個npm包

如何釋出一個npm包

1. 準備工作

  1. 安裝node

    https://www.runoob.com/nodejs/nodejs-install-setup.html

  2. 去npm官網註冊一個賬號

    官網地址:https://www.npmjs.com/

2.本地建立一個專案包

  1. 建立一個資料夾,自定義名稱,此處設為 cm-first-npm-demo

  2. 命令列進入資料夾下,輸入 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 檔案,如果你想修改包的資訊,可直接在此檔案中修改儲存。

  3. 建立一個 index.js 檔案,寫入一個加法函式作為測試函式,程式碼如下:

    module.exports.add = function add (a, b) {
     return a + b
    }
    

3.釋出包

  1. 以管理員身份執行命令列

  2. 修改npm倉庫源,輸入

    npm config set registry https://www.npmjs.com/
    

    注:包釋出完成後切回淘寶源

    npm config set registry http://www.npmjs.org
    
  3. 進入 cm-first-npm-demo

    資料夾下,輸入

    npm login
    

    填寫使用者名稱、密碼、郵箱後完成登入

  4. 釋出包

    npm publish
    
  5. 登入npm官網檢視包是否釋出成功

4. 測試包

  1. 建立一個資料夾,自定義名稱,此處設為 npm-test,作為引入釋出包的測試專案

  2. 命令列進入資料夾下,快速初始化專案

    npm init -y
    
  3. 安裝我們所釋出包

    npm i cm-first-npm-demo -S
    
  4. 建立 index.js 檔案,引入釋出包,程式碼如下

    const npmDemo = require('cm-first-npm-demo')
    
    console.log(npmDemo.add(33, 44))
    
  5. 修改 package.json 檔案,在script中新增 "start": "node index.js",如

    "scripts": {
      "start": "node index.js"
    }
    
  6. 輸入 npm start,輸出 77,包引入成功

5. 可能出現的問題

  1. 登入時:

    解決方式:切換到管理員

    解決方式:輸入郵箱接收到的一次性驗證碼。

  2. 安裝包時

    解決方式:

    (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 進行匯入。