nodejs的安裝使用與npm的介紹
Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime environment),發(fā)布于2009年5月,由Ryan Dahl開發(fā),實(shí)質(zhì)是對(duì)Chrome V8引擎進(jìn)行了封裝。本文詳細(xì)介紹了Node.js的安裝和使用。
一、Node.js介紹
Node.js 不是一個(gè) JavaScript 框架,不同于CakePHP、Django、Rails。Node.js 更不是瀏覽器端的庫(kù),不能與 jQuery、ExtJS 相提并論。Node.js 是一個(gè)讓 JavaScript 運(yùn)行在服務(wù)端的開發(fā)平臺(tái),它讓 JavaScript 成為與PHP、Python、Perl、Ruby等服務(wù)端語(yǔ)言平起平坐的腳本語(yǔ)言。
二、Node.js安裝
windows環(huán)境安裝Node.js
在瀏覽器地址欄輸入https://nodejs.org/en/
, 進(jìn)入Node.js
官網(wǎng)后,點(diǎn)擊下載左邊的穩(wěn)定版本,如下圖所示:
下載完成之后,開始安裝,點(diǎn)擊Next
:
Next
如果不需要修改安裝路徑,Next
Next
Install
打開命令行工具,開始
->運(yùn)行
->cmd
->回車
, 輸入node,如果提示如下,則安裝成功,否則需要手動(dòng)配置環(huán)境變量,或者重新安裝,安裝成功后,我們可以進(jìn)行JavaScript語(yǔ)言測(cè)試:
Mac環(huán)境安裝Node.js
直接使用brew包管理器進(jìn)行安裝,并根據(jù)提示添加環(huán)境變量,然后輸入node進(jìn)行測(cè)試:
以上就是Node.js分別在Windows和Mac環(huán)境下的安裝介紹。
三、npm
任何一門計(jì)算機(jī)語(yǔ)言都包含了豐富的第三方庫(kù),npm就是JavaScript這門語(yǔ)言的第三方庫(kù)管理工具,本文詳細(xì)介紹了JavaScript的包管理工具,npm。
在計(jì)算機(jī)中安裝好Node.js之后,默認(rèn)已經(jīng)安裝好了npm包管理工具,我們可以輸入npm
命令進(jìn)行測(cè)試:
使用npm包管理工具安裝第三方庫(kù)
安裝好npm包管理工具之后,我們來介紹兩種安裝npm包的方式:全局安裝和局部安裝
全局安裝
如果你想將該第三方庫(kù)作為一個(gè)命令行工具,并且任何項(xiàng)目都可用,那么你應(yīng)該將其安裝到全局。使用這種安裝方式,可以讓你在任何目錄下使用這個(gè)包,安裝全局包的方式如下:
npm install -g <package>
全局方式安裝的npm包,全局可用。
本地安裝方式一
npm init npm install vue@2.5.17
以上方式安裝的npm包,只在當(dāng)前目錄下可用,該方式安裝的包:
- 會(huì)把包安裝到node_modules目錄中 - 不會(huì)新增并修改package.json - 運(yùn)行npm install不會(huì)自動(dòng)安裝該包
本地安裝方式二
npm init npm install vue@2.5.17 --save
本地–save方式安裝的npm包,只在當(dāng)前目錄下可用,該方式安裝的包:
- 會(huì)把包安裝到node_modules目錄中 - 會(huì)在package.json的dependencies屬性下添加包 - 運(yùn)行npm install命令時(shí),會(huì)自動(dòng)安裝包到node_modules目錄中
本地安裝方式三
npm init npm install vue@2.5.17 --save-dev
采用上述第三種方式安裝的npm包,只在當(dāng)前目錄下可用,該方式安裝的包:
- 會(huì)把包安裝到node_modules目錄中 - 會(huì)在package.json的Devdependencies屬性下添加包 - 運(yùn)行npm install命令時(shí),不會(huì)自動(dòng)安裝包到node_modules目錄中
卸載全局包
`npm uninstall <package> -g`
卸載本地
npm uninstall <package> -S, --save: Package will be removed from your dependencies. npm uninstall <package> -D, --save-dev: Package will be removed from your devDependencies.
通過npm安裝JavaScript第三方庫(kù)時(shí),訪問的是國(guó)外的站點(diǎn),訪問速度會(huì)比較慢,此時(shí)我們可以使用國(guó)內(nèi)的鏡像站,cnpm,詳細(xì)的使用方式請(qǐng)參考http://npm.taobao.org/
。
安裝cnpm后,使用方式如下:
cnpm install vue
以上就是npm包的安裝和卸載介紹。
但是,當(dāng)我們需要維護(hù)多個(gè)獨(dú)立的項(xiàng)目環(huán)境時(shí), 比如項(xiàng)目一需要Vue2.5.10支持,而項(xiàng)目二需要最新的Vue2.5.17,我們應(yīng)該分別為項(xiàng)目一和項(xiàng)目二創(chuàng)建獨(dú)立的、與外界隔離的第三方庫(kù)環(huán)境。而不是在當(dāng)前目錄下使用本地或者全局方式安裝npm包。
我們應(yīng)該創(chuàng)建一個(gè)文件夾,并將該文件夾初始化為npm包環(huán)境,使用方式如下:
mkdir myproject cd myproject npm init
使用npm init
初始化項(xiàng)目環(huán)境的時(shí)候,會(huì)出現(xiàn)如下提示:
Press ^C at any time to quit. package name: (myproject) version: (1.0.0) description: entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to /Users/pizza/Downloads/myproject/package.json: { "name": "myproject", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } Is this OK? (yes)
按需填入上述信息,最后輸入yes
,項(xiàng)目環(huán)境初始化完畢。如果使用默認(rèn)信息,可以直接使用npm init -y
進(jìn)行初始化。
上面的信息依次是:
name 項(xiàng)目名稱 version 項(xiàng)目的版本號(hào) description 項(xiàng)目的描述信息 entry point 項(xiàng)目的入口文件 test command 項(xiàng)目啟動(dòng)時(shí)腳本命令 git repository 如果你有 Git 地址,可以將這個(gè)項(xiàng)目放到你的 Git 倉(cāng)庫(kù)里 keywords 關(guān)鍵詞 author 作者 license 項(xiàng)目要發(fā)行的時(shí)候需要的證書
查看特定package的信息
npm ls <package>
更新package
npm update <package>
搜索package
`npm search <package>`
package.json詳解
隨著項(xiàng)目的不斷豐富,package.json文件也會(huì)跟隨著不斷的復(fù)雜,接下來,介紹幾個(gè)在上述沒有的條目:
"private": true, "dependencies": { "antd": "^2.11.1", "classnames": "^2.2.5" }, "devDependencies": { "axios": "^0.15.3", "babel-eslint": "^6.1.2" }, "bin": { "dk-cli": "./bin/dk-cli.js" }, "scripts": { "start": "node index.js" }, "engines": { "node": ">=6.9.0", "npm": ">=3.10.10" } "publishConfig": { "registry": "http://gongsineibu/nexus/repository/npm-hosted/" }
private
可選字段,布爾值。如果 private 為 true,npm 會(huì)拒絕發(fā)布。這可以防止私有 repositories 不小心被發(fā)布出去;
dependencies
與devDependencies
在開發(fā)階段,我們需要對(duì)開發(fā)的模塊進(jìn)行單元測(cè)試,這時(shí)在開發(fā)環(huán)境 devDependencies 下就要安裝單元測(cè)試模塊 Mocha。
在生產(chǎn)環(huán)境 dependencies,用戶直接使用項(xiàng)目,此時(shí)項(xiàng)目的開發(fā)已全部完成。這時(shí)就不需要單元測(cè)試模塊了,再加上只會(huì)影響性能。
dependencies 指定了項(xiàng)目生產(chǎn)環(huán)境時(shí)所依賴的模塊,devDependencies 制定了項(xiàng)目開發(fā)環(huán)境時(shí)所依賴的模塊。
scripts
該字段指定了運(yùn)行腳本命令的npm命令行縮寫,比如start指定了運(yùn)行npm run start時(shí),所要執(zhí)行的命令。
下面的設(shè)置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint時(shí),所要執(zhí)行的命令;
"scripts": { "dev": "node build/dev-server.js", "build": "node build/build.js", "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", "test": "npm run unit", "lint": "eslint --ext .js,.vue src test/unit/specs" }
engines
字段指定依賴的node版本
publishConfig
當(dāng)我們開發(fā)完自己的項(xiàng)目想要將它發(fā)布到 Npm 倉(cāng)庫(kù)就需要使用這個(gè)屬性。默認(rèn)情況下我們是往 Npm 公共倉(cāng)庫(kù)中發(fā)布包,默認(rèn)地址是:https://www.npmjs.com/
,此時(shí)在 package.json
文件中可以不加這個(gè)屬性。
但是如果公司內(nèi)部搭建了 Npm 私有倉(cāng)庫(kù),此時(shí)發(fā)布包就不是往 https://www.npmjs.com/
這個(gè)地址上發(fā)布了,而是公司內(nèi)部提供的地址,如:http://gongsineibu/nexus/repository/npm-hosted/
。此時(shí)配置如下:
"publishConfig": { "registry": "http://gongsineibu/nexus/repository/npm-hosted/" }
publicConfig
字段決定了我們的包發(fā)布到哪里。
總結(jié)
以上所述是小編給大家介紹的nodejs的安裝與npm的介紹,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
用node開發(fā)并發(fā)布一個(gè)cli工具的方法步驟
這篇文章主要介紹了用node開發(fā)并發(fā)布一個(gè)cli工具的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01nodejs動(dòng)態(tài)創(chuàng)建二維碼的方法
這篇文章主要為大家詳細(xì)介紹了nodejs動(dòng)態(tài)創(chuàng)建二維碼的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Node.js中path.join()優(yōu)勢(shì)例舉分析
在本篇文章里小編給大家整理的是一篇關(guān)于Node.js中path.join()優(yōu)勢(shì)例舉分析,有興趣的朋友們可以學(xué)習(xí)下。2021-08-08node的process以及child_process模塊學(xué)習(xí)筆記
這篇文章主要介紹了node的process以及child_process模塊學(xué)習(xí)筆記,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Nodejs alpine基礎(chǔ)之docker鏡像構(gòu)建
這篇文章主要為大家介紹了Nodejs alpine基礎(chǔ)之docker鏡像構(gòu)建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07淺談Node Inspector 代理實(shí)現(xiàn)
這篇文章主要介紹了淺談Node Inspector 代理實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析
這篇文章主要為大家介紹了Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Node.js的HTTP模塊、URL模塊與supervisor工具介紹
這篇文章介紹了Node.js的HTTP模塊、URL模塊與supervisor工具,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06