一:如何制作一個標准包?
為了規范化,基本遵循CommonJS規范,首先約定:
包的使用:
- 所有模塊放在一個文件夾(包名)
- 包放在當前項目中的node_modules文件夾下
- 包中定義一個index.js(文件名不可以更改)導出所有模塊(出口)
- 引用包(約定大於配置)
Node.js在調用包時,首先會檢查包中的package.json文件的main字段,將其作為包的接口模塊,如果package.json文件的main字段不存在,那么Node.js會嘗試尋找index.js或index.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 // 建立包依賴
