国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

詳解Nodejs之npm&package.json

2024-05-06 16:37:47
字體:
供稿:網(wǎng)友

一直以來,作為前端開發(fā),在公司都是先寫好頁面,然后再跟后端合作,將數(shù)據(jù)填入前端頁面中,但是偶爾自己閑來無事,也會(huì)看一些框架什么的,然后利用框架做個(gè)單頁面應(yīng)用啊,app什么的,這時(shí)候頁面的數(shù)據(jù)總是一些假數(shù)據(jù),而關(guān)于數(shù)據(jù)請(qǐng)求的部分就沒辦法做(因?yàn)闆]有后臺(tái)嘛)。所以我感覺是時(shí)候?qū)W習(xí)一下node了,這對(duì)于我以后要學(xué)的webpack,前端工程化等也有一定幫助。
作為前端,因?yàn)榻?jīng)常用到gulp,webpack等工具,所以我們最常見到的是npm和package.json,所以先總結(jié)一下它們倆。

npm

初始化

$ npm initor$ npm init --y 

在做前端開發(fā)的時(shí)候,我們經(jīng)常會(huì)用到構(gòu)建工具,例如gulp,webpack等,為了讓別人也可以參與進(jìn)來,我們需要告訴別人項(xiàng)目有些什么依賴包,然后讓別人也安裝同樣的依賴包,而npm init產(chǎn)生的package.json就是用來記錄我們項(xiàng)目中的依賴的,同樣的,在做node開發(fā)的時(shí)候,也會(huì)用刀依賴包,同樣需要package.json記錄。

在終端輸入npm init會(huì)詢問package.json的各種信息,從而確認(rèn)。如果全部使用默認(rèn)值,可以直接在終端輸入npm init --y快速生成package.json。

安裝依賴包

$ npm install <package name> <package name> ...$ npm install <package name> -g$ npm install <package name> --save$ npm install <package name> --save-dev$ npm install <pacakage name> --O //--save-optional -B: --save-bundle -E: --save-exact

npm install <package name> -g 表示全局安裝,需要注意的是全局模式并不是將一個(gè)模塊安裝包安裝為一個(gè)全局包的意思,它并不意味著可以從任何地方通過require()來引用,-g的含義是將一個(gè)包安裝為全局可用的可執(zhí)行命令。這意味著,所有通過-g安裝的包都可以在終端以命令方式運(yùn)行,例如gulp,webpack等。

--save--save-dev的區(qū)別在于前者是生產(chǎn)環(huán)境中項(xiàng)目運(yùn)行需要的依賴,安裝后被記錄在package.json中的dependencies關(guān)鍵字下;而后者是開發(fā)時(shí)候需要的依賴,安裝后被記錄在devDependencies關(guān)鍵字下。

同樣--O/B/E分別會(huì)被記錄到對(duì)應(yīng)的關(guān)鍵字下。

更新依賴包

$ npm update$ npm update -g$ npm outdated$ npm outdated -g

在項(xiàng)目目錄下運(yùn)行npm update可以升級(jí)項(xiàng)目中所用依賴到最新版本,而npm update -g則可以升級(jí)全局安裝的依賴包到最新版。

npm outdated用于檢查模塊是否過時(shí)并列出。

卸載依賴

$ npm uninstall <package name> <package name> ...$ npm uninstall <package name> -g$ npm uninstall <package name> --save$ npm uninstall <package name> --save-dev

使用npm uninstall可以卸載依賴,但是卸載后,在package.json中的紀(jì)錄并不會(huì)被刪除,要想在卸載依賴的同時(shí)刪除在package.json中的紀(jì)錄,需要在卸載的時(shí)候使用安裝時(shí)的所有的選項(xiàng),例如,如果安裝時(shí)候使用了npm install <package name> --save則卸載的時(shí)候,同樣使用npm uninstall <pacakage name> --save,而如果使用了--save-dev,卸載時(shí)候也需要加相同的選項(xiàng)。

使用自定義npm命令

在package.json中,有一個(gè)scripts關(guān)鍵字,只需要在該關(guān)鍵字內(nèi)寫入自定義命令以及對(duì)應(yīng)執(zhí)行的實(shí)際命令即可。

"scripts":{  "test": "nonde ./test.js",  "dev": "gulp --gulpfile gulpfile-dev.js",  "build": "gulp --gulpfile gulpfile-build.js"}

上面的配置中,只要我們?cè)诮K端運(yùn)行npm dev就是運(yùn)行了gulp --gulpfile gulpfile-dev.js,這樣就省去了我們?cè)诮K端輸入很長(zhǎng)的一段命令,非常方便。

其他

npm view <pacakage name>可以查看包的package.json文件,如果只是看包的某個(gè)特性,在后面加上相應(yīng)的key即可,例如npm v zepto version就是查看當(dāng)前安裝的zepto的版本,v是view的簡(jiǎn)寫。

npm ls可以分析出當(dāng)前當(dāng)前項(xiàng)目下能夠通過模塊路徑找到的所有包,并生成依賴樹。

npm doc <package name>可以打開該依賴包的官網(wǎng),其實(shí)就是打開了package.json中的homepage。

package.json文件

在運(yùn)行npm init后會(huì)生成package.json文件,該文件用于記錄項(xiàng)目中所用到的依賴以及項(xiàng)目的配置信息(比如名稱、版本、許可證等)。npm install命令根據(jù)這個(gè)配置文件自動(dòng)下載項(xiàng)目運(yùn)行和開發(fā)所需要的依賴。

一個(gè)比較完整的package.json文件如下:

{  "name": "project",  "version": "1.0.0",  "author": "張三",  "description": "第一個(gè)node.js程序",  "keywords":["node.js","javascript"],  "repository": {    "type": "git",    "url": "https://path/to/url"  },  "license":"MIT",  "engines": {"node": "0.10.x"},  "bugs":{"url":"http://path/to/bug","email":"bug@example.com"},  "contributors":[{"name":"李四","email":"lisi@example.com"}],  "scripts": {    "start": "node index.js"  },  "dependencies": {    "express": "latest",    "mongoose": "~3.8.3"  },  "devDependencies": {    "grunt": "~0.4.1",    "grunt-contrib-concat": "~0.3.0"  }}

在package.json中一些關(guān)鍵字的含義:

1.name:包名

2.version:版本號(hào)

3.description:包的描述

4.homepage:包的官網(wǎng)url

5.autor:包的作者名字

6.contributors:包的其他貢獻(xiàn)者

7.dependencies:依賴包的列表,使用npm install可以安裝依賴包到node_medule目錄下

8.repository:包代碼存放的地方,可以是git或者svn

9.keywords:關(guān)鍵字

10.scripts:腳本說明對(duì)象。它主要被包管理器用來安裝、編譯、測(cè)試和卸載包,示例如下:

"scripts":{  “install”:"install.js",  "test":"test.js"}

11.main:模塊引入方法require()在引入包時(shí),會(huì)優(yōu)先檢查這個(gè)字段,并將其作為包中其余模塊的入口,如果該字段不存在,則node會(huì)檢查目錄下的index.js,index.node,index.json作為默認(rèn)入口。

12.devDependencies:一些模塊只在開發(fā)時(shí)需要依賴,配置這個(gè)屬性,可以提示包的后續(xù)開發(fā)者安裝依賴包

以上就是關(guān)于node中npm和package.json的總結(jié)。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴业县| 绍兴县| 宁蒗| 二连浩特市| 福清市| 山东省| 疏勒县| 农安县| 游戏| 阿瓦提县| 凌源市| 威海市| 长武县| 日喀则市| 盐津县| 达拉特旗| 卢氏县| 朝阳区| 北宁市| 华蓥市| 循化| 定州市| 敦化市| 余庆县| 延津县| 安义县| 大石桥市| 宽甸| 巴青县| 黄山市| 高雄市| 金湖县| 南投县| 疏勒县| 康平县| 莱西市| 保德县| 南城县| 曲周县| 尚义县| 象山县|