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