nodejs中標准包的制作,上傳,安裝及卸載方法


 :如何制作一個標准包?

為了規范化,基本遵循CommonJS規范,首先約定:

包的使用:

  • 所有模塊放在一個文件夾(包名)
  • 包放在當前項目中的node_modules文件夾下
  • 包中定義一個index.js(文件名不可以更改)導出所有模塊(出口)
  • 引用包(約定大於配置)

Node.js在調用包時,首先會檢查包中的package.json文件的main字段,將其作為包的接口模塊,如果package.json文件的main字段不存在,那么Node.js會嘗試尋找index.jsindex.node作為包的接口。

以下是一個非常簡單的標准包的參照:

 

 

標准包的結構:

|功能 |---|---| package.js |包描述文件 bin |存放可執行文件 lib |存放JavaScript代碼 doc |存放文檔 test |存放單元測試用例代碼 README.md |說明文檔,描述包的作用和用法

 

如何打包生成package.json文件?

我們以下面這個還未打包的package為例:

 

 

步驟: 1.自己創建README.md說明文件,注意修改后綴名

     2.在根目錄package下執行命令窗口

npm init -y  //自動創建package.json

 

當然如果想要自己手動創建就不要加 -y輸入 npm init即可

   name:(package)    //包名:(括號內為默認值下同) 回車

   version:(1.0.0)       //版本

   git repository:        //模塊的git倉庫,選填。npm的用戶一般都使用github做為自己的git       倉庫

   author:              //模塊的作者名

   License:(ISC)             //許可證 默認括號中的

 

IS this ok?(yes)         //輸入yes即可生成

     

:如何發布一個包?

1)發布一個包的步驟:

當我們創建完了一個包我們便會將其上傳到npm的官網上去,以供其他人來使用

 第一步:npm官網 https://www.npmjs.com/上注冊一個賬號

 第二步:登錄

在包的根目錄下面執行打開dos窗口(我這里的需要上傳的包為math文件夾)(找到這個文件夾所在位置,按住shift右擊, 點擊”在此處打開命令窗口”)

 

 

npm adduser        //回車后,彈出Username:  

Username:          //輸入你在官網注冊時的用戶名,回車

Password:          //輸入官網注冊的密碼,密碼看不見,請確保你輸的密碼正確, 回車

Email:(this is Public)    //輸入官網注冊時綁定的郵箱,回車

第三步:上傳

npm publish        //此處上傳命令,回車

 

上傳成功如下圖:

   

 

 

 

 

2)發布一個包的時候容易遇到的問題:

  • 1.切換的源不對,很可能你現在的源是taobao等其他來源
  • 報錯信息會中含有:
  • only admin can publish this module

解決辦法:修改源 npm config set registry http://registry.npmjs.org

 

查看是否切換源成功: npm config list

當跳出的信息中含有registry = "http://registry.npmjs.org/"表示切換源成功

 

2.你的包名與npm官網上別人上傳的包重名了,會報以下錯誤

 

 

解決辦法有兩種:

 

 

1.修改你包中的package.json文件中的name(即包的名字)

2.修改你包的版本名

 

:安裝包

在新建的文件的根目錄下執行

npm install 需要的包名  //安裝包 (想要安裝在當前目錄下,必須先生成package.json)

 

npm uninstall 需要刪除的包名  //卸載包

 

 

npm unpublish @ 刪除發布過的版本代碼 npm unpublish haha@1.0.0

 

 

在新建的文件下的根目錄執行

 npm install 包名 --save  // 建立包依賴

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM