npm 包發布

1. npm與包

包: node.js中的第三方模塊

1.1 包的基本使用

下載包: npm i [package name]

初次裝包完成后,在項目文件夾下多一個叫做node_modules文件夾和package-lock.json配置文件

  • node_modules文件夾: 用來存放所有已安裝到項目的包。require()導入第三方包時,從這個目錄查找并加載。

  • package-lock.json配置文件: 用來記錄node_modules目錄下的每一個包下載信息,如包的名字、版本號、下載地址等。

包的語義化版本規范:包的版本號,總共三位數字,如2.24.0

  • 第一位數字:大版本

  • 第二位數字:功能版本

  • 第三位數字:bug修復版本

前面的版本號增長了,則后面的版本號歸零

1.2 包管理配置文件

項目根目錄中,必須提供叫做package.json的包管理配置文件。用來記錄與項目有關的一些配置信息,如:

  • 項目名稱、版本號、描述等

  • 項目中用到哪些包

  • 哪些包只在開發期間用到

  • 哪些包在開發和部署時都需要用到

使用npm init -y快速新建package.json文件

devDependencies:在項目開發階段使用,在項目上線后不會用到,下載時使用-d--save-dev后綴

1.3 npm下包鏡像源

下包的服務器地址

// 查看當前下包鏡像源
npm config get registry

// 將下包的鏡像源切換為淘寶鏡像源
npm config set registry=https://registry.npm.taobao.org/

i5ting_toc: 將md轉html的npm包

npm i -g i5ting_toc

i5ting_toc -f 要轉換的md文件路徑 -o

6.4 開發屬于自己的包

  1. 新建文件夾,作為包的根目錄

  2. 在文件夾中,新建如下三個文件:

    • package.json:包管理配置文件

    • index.js: 包入口文件

    • README.md: 包說明文檔

  3. 初始化package.json

{
     "name":"", // 包名稱,不能重復
     "version":"",  // 版本號
     "main":"",  // 包入口文件
     "description":"",  // 包描述信息
     "keywords":[""],  // 包搜索關鍵字
     "license":"ISC"  // 開源許可協議
    }
  1. 發布包

    1)注冊npm賬號

    2)登錄npm賬號:在終端執行npm login命令,依次輸入用戶名、密碼、郵箱。

    注:必須在官方下載路徑上;查看當前包下載路徑nrm ls,切換到官方下載路徑nrm use npm

    3)在包根目錄運行npm publish命令,即可將包發布到npm上

    4)刪除已發布包:運行npm unpublish [包名] --force命令,只能刪除72小時內發布的包,且刪除后在24小時內不允許重復發布

  2. 模塊加載機制

    自定義模塊:使用require()加載自定義模塊時,必須指定以./../開頭的路徑標識符,如果未指定,node會把它當做內置模塊或第三方模塊進行加載

    如果使用require()導入自定義模塊時,省略了模塊擴展名,則node.js會按順序嘗試加載以下文件:

    1) 按照確切的文件名進行加載

    2)補全.js擴展名進行加載

    3)補全.json擴展名進行加載

    4)補全.node擴展名加載

    5)加載失敗

    第三方模塊:傳遞給require()模塊標識符的不是一個內置模塊,嘗試從/node_modules文件夾加載第三方模塊,如果沒有找到對應第三方模塊,則移動到上一層父目錄中node_module中進行加載,直到系統的根目錄

    目錄作為模塊:

    1)在被加載目錄下查找一個叫做package.json的文件,并尋找main屬性,作為require()加載的入口

    2)如果目錄中沒有pakage.json文件,或main入口不存在無法解析,則Node.js會試圖加載目錄下的index.js文件

    3)報錯

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容