問(wèn)答
1.nodejs 是什么叁执?可以做什么篙悯?為什么擅長(zhǎng)做?
- Node.js是一個(gè)Javascript運(yùn)行環(huán)境(runtime)夕凝。實(shí)際上它是對(duì)Google V8引擎進(jìn)行了封裝宝穗。V8引 擎執(zhí)行Javascript的速度非撤馑铮快,性能非常好讽营。Node.js對(duì)一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API泡徙,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好橱鹏。
- Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái), 用于方便地搭建響應(yīng)速度快堪藐、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用莉兰。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O 模型而得以輕量和高效礁竞,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用糖荒。
- 特性
1.單線程
2.非阻塞IO
3.事件驅(qū)動(dòng)
4.RESTful API
5.V8虛擬機(jī) - 應(yīng)用:
1.Web開發(fā):Express + EJS + Mongoose/MySQL
2.REST開發(fā):Restify
3.Web聊天室(IM):Express + Socket.io
4.Web爬蟲:Cheerio/Request
5.Web博客:Hexo
6.Web論壇: nodeclub
7.Web幻燈片:Cleaver
8.前端包管理平臺(tái): bower.js
9.操作系統(tǒng): node-os
10.客戶端應(yīng)用工具: node-webwit - nodejs的幾大特性奠定了node.js開發(fā)上述應(yīng)用的優(yōu)勢(shì)
1.動(dòng)態(tài)語(yǔ)言:開發(fā)效率非常高,并有能力構(gòu)建復(fù)雜系統(tǒng)模捂,如ql.io捶朵。
2.性能和I/O負(fù)載:Nodejs非常好的解決了IO密集的問(wèn)題,通過(guò)異步IO來(lái)實(shí)現(xiàn)狂男。
3.連接的內(nèi)存開銷:每個(gè)Node.js進(jìn)程可以支持超過(guò)12萬(wàn)活躍的連接综看,每個(gè)連接消耗大約2K的內(nèi)存。
4.操作性:實(shí)現(xiàn)了Nodejs對(duì)于內(nèi)存堆棧的監(jiān)控系統(tǒng)岖食。
2.npm 是什么? 如何安裝 node 應(yīng)用红碑?全局安裝和本地安裝有什么區(qū)別? --save與--saveDev的區(qū)別泡垃? node_module的查找依賴的路線是怎樣的?
- npm(node package manager)是NodeJS的包管理器析珊,能夠讓用戶上傳或下載第三方庫(kù)或應(yīng)用,用于node插件管理(包括安裝蔑穴、卸載忠寻、管理依賴等)。
- 全局安裝可以計(jì)算機(jī)的任意目錄下調(diào)用nodejs.本地安裝只能在安裝相應(yīng)的目錄下運(yùn)行nodejs.
1.全局安裝命令npm install gulp -g 或 npm install gulp --global
2.本地安裝命令npm install gulp 或 npm install gulp --save-dev
- npm install 在安裝 npm 包時(shí)存和,有兩種命令參數(shù)可以把它們的信息寫入 package.json 文件锡溯,
npm install --save 或 npm install --save-dev
,區(qū)別如下:
1.--save
會(huì)把依賴包名稱添加到 package.json 文件 dependencies 鍵下,--save-dev
則把依賴包名稱添加到 package.json 文件 devDependencies 鍵下
2.dependencies鍵下的模塊一般是生產(chǎn)環(huán)境下使用 哑姚,devDependencies 鍵的模塊一般是開發(fā)環(huán)境下使用 - nodemoudle的查找路徑是從當(dāng)前的項(xiàng)目目錄一直向上查找到系統(tǒng)的nodemoule根目錄祭饭,這也解釋了全局安裝為什么生效
3.安裝browser-sync并了解它的使用方式
- Browsersync能讓瀏覽器實(shí)時(shí)、快速響應(yīng)您的文件更改(html叙量、js倡蝙、css、sass绞佩、less等)并自動(dòng)刷新頁(yè)面寺鸥。更重要的是** Browsersync可以同時(shí)在PC猪钮、平板、手機(jī)等設(shè)備下進(jìn)項(xiàng)調(diào)試**胆建。
- 安裝方式(命令行)
1.npm install browser-sync -g
2.查看版本browser-sync --version
,若有版本號(hào)則表示安裝成功
3.啟動(dòng) BrowserSync
3.1 如果您只希望在對(duì)某個(gè)css文件進(jìn)行修改后會(huì)同步到瀏覽器里烤低。那么您只需要運(yùn)行命令行工具,進(jìn)入到該項(xiàng)目(目錄)下笆载,并運(yùn)行相應(yīng)的命令:browser-sync start --server --files "css/*.css"
3.2 如果您需要監(jiān)聽多個(gè)類型的文件扑馁,您只需要用逗號(hào)隔開例如我們?cè)偌尤胍粋€(gè).html文件.browser-sync start --server --files "css/*.css, *.html"
3.3 如果您已經(jīng)有其他本地服務(wù)器環(huán)境PHP或類似的,您需要使用代理模式凉驻。 BrowserSync將通過(guò)代理URL(localhost:3000)來(lái)查看您的網(wǎng)站.browser-sync start --proxy "主機(jī)名" "css/*.css"
- 建議結(jié)合gulp或grunt來(lái)使用,效果更加
4.全局安裝server-mock并了解它的使用方式
- server-mock 是一個(gè)簡(jiǎn)單好用的用于前后端分離的 mock 利器腻要, 基于 express 開發(fā),可方便的 mock 數(shù)據(jù),和一般基于配置的 mock 工具不同涝登,server-mock可以創(chuàng)建使用范例雄家,讓使用者可讓使用者模仿范例簡(jiǎn)單快捷的實(shí)現(xiàn)需求
- 安裝方式(npm命令)
1.全局安裝npm install server-mock -g
2.安裝完畢,命令行打開項(xiàng)目的文件胀滚,輸入mock init
3.server-mock還支持頁(yè)面路由解析與模板渲染趟济,在router.js里設(shè)置好對(duì)應(yīng)路由下需要展示的數(shù)據(jù)以及對(duì)應(yīng)的模板文件,即可通過(guò)瀏覽器看到渲染后的效果
4.啟動(dòng) webserver:mock start
,在瀏覽器輸入 http://localhost:8080 即可預(yù)覽 - 參考文檔:server-mock
5.什么是前端構(gòu)建咽笼,有哪些常見的前端構(gòu)建工具?
- 前端構(gòu)建就是實(shí)現(xiàn)前端性能優(yōu)化自動(dòng)化咙好、工程化的過(guò)程,前端構(gòu)建工具就是用來(lái)讓我們不再做機(jī)械重復(fù)的事情褐荷,解放我們的雙手的勾效,比如我們會(huì)用 Less /Sass去寫 CSS,會(huì)用 Jade 去寫 HTML叛甫,會(huì)用 Browserify 去模塊化层宫、為非覆蓋式部署的資源加 MD5 戳等,工作性質(zhì)重復(fù)機(jī)械,浪費(fèi)大量人力物力其监,前端工具就是為了解決這個(gè)問(wèn)題萌腿,
- 常見的前端構(gòu)建工具有g(shù)ulp,grunt,Yeoman, WebPack等
代碼
1.使用 gulp,實(shí)現(xiàn)一個(gè)項(xiàng)目的自動(dòng)化構(gòu)建, 要求:
項(xiàng)目中包括多個(gè) css 文件, 多個(gè) js 文件抖苦,多個(gè)圖片
操作 src 目錄毁菱,css 需要壓縮合并,js 需要壓縮合并锌历,圖片需要壓縮贮庞,處理后放入 dist 目錄
以下是范例,推薦構(gòu)建前面的任務(wù)中包含 css js和圖片的項(xiàng)目