您好,登錄后才能下訂單哦!
一直以來,作為前端開發,在公司都是先寫好頁面,然后再跟后端合作,將數據填入前端頁面中,但是偶爾自己閑來無事,也會看一些框架什么的,然后利用框架做個單頁面應用啊,app什么的,這時候頁面的數據總是一些假數據,而關于數據請求的部分就沒辦法做(因為沒有后臺嘛)。所以我感覺是時候學習一下node了,這對于我以后要學的webpack,前端工程化等也有一定幫助。
作為前端,因為經常用到gulp,webpack等工具,所以我們最常見到的是npm和package.json,所以先總結一下它們倆。
npm
初始化
$ npm init or $ npm init --y
在做前端開發的時候,我們經常會用到構建工具,例如gulp,webpack等,為了讓別人也可以參與進來,我們需要告訴別人項目有些什么依賴包,然后讓別人也安裝同樣的依賴包,而npm init產生的package.json就是用來記錄我們項目中的依賴的,同樣的,在做node開發的時候,也會用刀依賴包,同樣需要package.json記錄。
在終端輸入npm init會詢問package.json的各種信息,從而確認。如果全部使用默認值,可以直接在終端輸入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
表示全局安裝,需要注意的是全局模式并不是將一個模塊安裝包安裝為一個全局包的意思,它并不意味著可以從任何地方通過require()來引用,-g的含義是將一個包安裝為全局可用的可執行命令。這意味著,所有通過-g安裝的包都可以在終端以命令方式運行,例如gulp,webpack等。
--save
與--save-dev
的區別在于前者是生產環境中項目運行需要的依賴,安裝后被記錄在package.json中的dependencies關鍵字下;而后者是開發時候需要的依賴,安裝后被記錄在devDependencies關鍵字下。
同樣--O/B/E
分別會被記錄到對應的關鍵字下。
更新依賴包
$ npm update $ npm update -g $ npm outdated $ npm outdated -g
在項目目錄下運行npm update
可以升級項目中所用依賴到最新版本,而npm update -g
則可以升級全局安裝的依賴包到最新版。
npm outdated
用于檢查模塊是否過時并列出。
卸載依賴
$ 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中的紀錄并不會被刪除,要想在卸載依賴的同時刪除在package.json中的紀錄,需要在卸載的時候使用安裝時的所有的選項,例如,如果安裝時候使用了npm install <package name> --save
則卸載的時候,同樣使用npm uninstall <pacakage name> --save
,而如果使用了--save-dev
,卸載時候也需要加相同的選項。
使用自定義npm命令
在package.json中,有一個scripts
關鍵字,只需要在該關鍵字內寫入自定義命令以及對應執行的實際命令即可。
"scripts":{ "test": "nonde ./test.js", "dev": "gulp --gulpfile gulpfile-dev.js", "build": "gulp --gulpfile gulpfile-build.js" }
上面的配置中,只要我們在終端運行npm dev就是運行了gulp --gulpfile gulpfile-dev.js,這樣就省去了我們在終端輸入很長的一段命令,非常方便。
其他
npm view <pacakage name>
可以查看包的package.json文件,如果只是看包的某個特性,在后面加上相應的key即可,例如npm v zepto version
就是查看當前安裝的zepto的版本,v是view的簡寫。
npm ls
可以分析出當前當前項目下能夠通過模塊路徑找到的所有包,并生成依賴樹。
npm doc <package name>
可以打開該依賴包的官網,其實就是打開了package.json中的homepage。
package.json文件
在運行npm init
后會生成package.json文件,該文件用于記錄項目中所用到的依賴以及項目的配置信息(比如名稱、版本、許可證等)。npm install
命令根據這個配置文件自動下載項目運行和開發所需要的依賴。
一個比較完整的package.json文件如下:
{ "name": "project", "version": "1.0.0", "author": "張三", "description": "第一個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中一些關鍵字的含義:
1.name:包名
2.version:版本號
3.description:包的描述
4.homepage:包的官網url
5.autor:包的作者名字
6.contributors:包的其他貢獻者
7.dependencies:依賴包的列表,使用npm install可以安裝依賴包到node_medule目錄下
8.repository:包代碼存放的地方,可以是git或者svn
9.keywords:關鍵字
10.scripts:腳本說明對象。它主要被包管理器用來安裝、編譯、測試和卸載包,示例如下:
"scripts":{ “install”:"install.js", "test":"test.js" }
11.main:模塊引入方法require()在引入包時,會優先檢查這個字段,并將其作為包中其余模塊的入口,如果該字段不存在,則node會檢查目錄下的index.js,index.node,index.json作為默認入口。
12.devDependencies:一些模塊只在開發時需要依賴,配置這個屬性,可以提示包的后續開發者安裝依賴包
以上就是關于node中npm和package.json的總結。希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。