上一篇文章已經介紹了CommonJS 這里就不贅述了
包是什么呢? 類比于git,是我們對于某種文件夾的叫法 git init
命令在當前文件夾中生成了隱藏文件.git,我們就把這個文件叫做倉庫 npm init
命令在當前文件夾中生成了配置文件package.json,我們就把這個文件叫做包
CommonJS包規范包括包結構和包描述文件
如果嚴格按照規范來說 包目錄應包含以下文件或目錄
package.json:包描述文件bin:存放可執行二進制文件的目錄lib:存放js代碼的目錄doc:存放文檔的目錄test:存放單元測試用例代碼的目錄package.json就位于包的根目錄 就是一個配置文件 內部就是對于包的相關描述信息
{ "name": "demo", "version": "1.0.0", "descr其實根據屬性名也能猜個差不多 規范字段解釋如下:name:名description:簡介version:版本號keyWords:關鍵詞數組maintainers:維護者列表contributors:貢獻者列表bugs:可以反饋bug的網頁或郵箱地址licenses:許可證列表respositories:托管源碼的位置列表dependencies:依賴項列表homepage:網站地址os:操作系統支持列表cpu:CPU架構支持列表engine:支持的JS引擎列表builten:是否內建在底層系統的標準組件directories:目錄說明implements:實現規范的列表scripts:腳本說明對象除了規范之外,還有擴展的字段:
authoer:作者bin:配置為命令行工具main:入口文件devDependencies:開發依賴項列表 NPM(node package manage)實踐了CommonJS的包規范 利用它,我們可以發布、安裝和依賴第三方模塊 我們下載Node的時候,其實已經內置了npm,所以我們不用再下載 NPM常用指令如下:
命令 | 含義 |
---|---|
$ npm | 查看NPM幫助說明 |
$ npm -v | 查看當前NPM版本 |
$ npm init | 初始化包(配置package.json) |
$ npm <command> | 查看具體命令幫助說明 |
$ npm install <package> | 安裝第三方包 |
$ npm uninstall <package> | 卸載包 |
$ npm install <package> --save-dev | 安裝包并將安裝信息寫入package.json(devDependencies) |
$ npm install <package> --dev | 安裝第包并將安裝信息寫入package.json(dependencies) |
$ npm install <package> -g | 全局安裝第三方包 |
$ npm install <file-url> | 安裝本地包 |
$ npm adduser | 注冊npm賬號 |
$ npm publish <folder> | 上傳包 |
$ npm owner ls <package-name> | 查看包擁有者 |
$ npm owner add <user> <package-name> | 添加包擁有者 |
$ npm owner rm <user> <package-name> | 刪除包擁有者 |
$ npm ls | 分析包 |
簡單說幾個吧
npm
查看幫助
幫助列舉了所有的命令
npm -v
查看當前npm版本
npm init
輸入這個命令后 會讓你填寫包名、包簡介等等信息 然后我們的文件就會動態生成一個package.json文件
如果我們的包要發布的話,這些就要好好填寫了 包名就是發布的名字 不過我們在本地練習,就直接一路回車就好了 此時就會發現package.json已經存在我們的目錄下了 當然我們也可以不使用這個命令,手動編寫package.json
安裝依賴包使用命令$ npm install <package>
比如說我下一個exPRess
下載完畢后,放在了根目錄的node_modules下
第三方模塊也可能依賴其他的第三方模塊 如果直接下載會報錯(錯誤信息會提示缺少什么包) 那么我們要想使用它,就必須下它所依賴的包
在我們的package.json的scripts字段提供了鉤子機制
"scripts": { "preinstall": "preinstall.js", "install": "install.js", "uninstall": "uninstall.js", "test": "test.js"}比如我們這樣寫 那么在執行$ npm install <package>
的時候 就會執行preinstall的屬性值preinstall.js腳本 然后執行install的屬性值install.js腳本 執行$ npm uninstall <package>
的時候 又會執行uninstall.js腳本做一些清理工作 執行$ npm test
又會執行test.js
更多關于npm的信息可以查看官網:傳送門 實際上現在出現一個比npm還要好的包管理工具 其實和npm用法幾乎一樣的 下一篇文章我再來談一談
==主頁傳送門==
新聞熱點
疑難解答