1.如何全局安裝一個(gè)node應(yīng)用?
npm install -g 應(yīng)用程序
2.package.json有什么作用窝爪?
package.json存儲(chǔ)在項(xiàng)目的根目錄下弛车,保存鏈項(xiàng)目的名稱、版本蒲每、描述纷跛、關(guān)鍵字、作者等相關(guān)信息以及該項(xiàng)目的依賴信息(運(yùn)行依賴環(huán)境邀杏、開發(fā)依賴環(huán)境)
{
"name": "demo1", //項(xiàng)目名稱
"version": "1.0.1", //項(xiàng)目版本
"description": " ", //項(xiàng)目描述
"main": "index.js", //項(xiàng)目入口
"scripts": { //npm script 命令行
"test": "echo\"Eorr: no test specified\" && exit 1"
}
"bin": { //項(xiàng)目執(zhí)行文件的位置
"demo1": "./index.js"
}
"keyword": [ //項(xiàng)目關(guān)鍵字
"demo1"
],
"author": "xxx", //項(xiàng)目作者
"license": "ISC", //項(xiàng)目認(rèn)證信息
"dependencies": { //項(xiàng)目運(yùn)行依賴環(huán)境贫奠,當(dāng)安裝該項(xiàng)目時(shí),運(yùn)行依賴環(huán)境也會(huì)安裝
"marked": "^0.3.6"
},
"devDependencies": { //項(xiàng)目開發(fā)依賴環(huán)境望蜡,只在本地測試有效唤崭,安裝該項(xiàng)目時(shí),開發(fā)依賴環(huán)境不會(huì)安裝
"easytpl": "^1.0.4"
}
}
3.npm install --save app
與npm install --save-dev app
有什么區(qū)別脖律?
npm install --save app
將項(xiàng)目運(yùn)行時(shí)需要的依賴環(huán)境下載到package.json的dependencies中谢肾,項(xiàng)目發(fā)布之后還要繼續(xù)使用。
npm install --save-dev app
將項(xiàng)目的開發(fā)依賴環(huán)境下載到package.json的devDependencies中小泉,在本地測試的時(shí)候使用芦疏,項(xiàng)目發(fā)布之后不會(huì)使用冕杠。
4.node_modules
的查找路徑是怎樣的?
從項(xiàng)目的所在同級目錄開始查找node_modules酸茴,如果在當(dāng)前目錄找不到分预。則在上一級目錄中查找,如果找不到薪捍,則以此類推笼痹,直到查找到改文件,或者查找到根目錄下找不到為止飘诗。
5.webpack是什么与倡?和其他同類型工具比有什么優(yōu)勢?
webpack是一個(gè)模塊打包器昆稿。它將根據(jù)模塊的依賴關(guān)系進(jìn)行動(dòng)態(tài)分析纺座,然后將這些模塊按照指定的規(guī)則生成對應(yīng)的靜態(tài)資源。
和其他類型工具相比優(yōu)勢:
(1)代碼拆分
Webpack有兩種組織模塊依賴的方式溉潭,同步和異步净响。異步依賴作為分割點(diǎn),形成一個(gè)新的塊喳瓣。在優(yōu)化了依賴樹后馋贤,每個(gè)異步區(qū)塊都作為一個(gè)文件被打包。
(2)Loader
Webpack本身只能處理原生的javaScript模塊畏陕,但是loader轉(zhuǎn)換器可以將各種類型的資源轉(zhuǎn)換成JavaScript模塊配乓。這樣,任何資源都可以成為Webpack可以處理的模塊惠毁。
(3)智能解析
Webpack有一個(gè)智能解析器犹芹,幾乎可以處理任何第三方庫,無論他們的模塊形式是CommonJS鞠绰、AMD還是普通的JS文件腰埂。甚至在加載依賴的時(shí)候,允許使用動(dòng)態(tài)表達(dá)式require("./templates/" + name + ".jade")
蜈膨。
(4)插件系統(tǒng)
Webpack還有一個(gè)功能豐富的插件系統(tǒng)屿笼,大多數(shù)內(nèi)容功能都是基于這個(gè)插件系統(tǒng)運(yùn)行的,還可以開發(fā)和使用Webpack插件翁巍,來滿足各種各樣的需求驴一。
(5)快速運(yùn)行
Webpack使用異步I/O和多級緩存提高運(yùn)行效率。這使得Webpack能夠以令人難以置信的速度增量編譯曙咽。
6.npm script是什么蛔趴?如何使用?
npm script是npm使用的腳本語言,存儲(chǔ)在package.json的script字段中孝情,script字段的key代表npm script的命令鱼蝉,value代表實(shí)際執(zhí)行的命令。start和test命令可以用npm start和npm test在命令行執(zhí)行箫荡,其他都需要用npm run xxx執(zhí)行魁亦。
7.使用webpack替換入門任務(wù)15的模塊化requirejs
8.gulp是什么?使用gulp實(shí)現(xiàn)圖片壓縮羔挡、CSS壓縮合并洁奈、JS壓縮合并
gulp是前端開發(fā)過過程中進(jìn)行構(gòu)建的工具,是自動(dòng)化構(gòu)建項(xiàng)目的利器绞灼;不僅能對網(wǎng)絡(luò)資源進(jìn)行優(yōu)化利术,在開發(fā)過程中很多重復(fù)的任務(wù)能夠正確的工具自動(dòng)完成;使用gulp大大提高了工作效率低矮。
gulp是基于Nodejs的自動(dòng)任務(wù)運(yùn)行器印叁,能自動(dòng)的完成html/css/sass/less/javascript/image/coffee等文件的測試、檢查军掂、壓縮轮蜕、合并、格式化蝗锥、瀏覽器自動(dòng)刷新跃洛、部署文件生成、并監(jiān)聽文件在改動(dòng)后重復(fù)指定的這些步驟终议。在實(shí)現(xiàn)上汇竭,借鑒了Unix操作系統(tǒng)的管道(pipe)思想,前一級的輸出直接變成后一級的輸入穴张,使得在操作上十分簡單韩玩。
npm install --save gulp-imagemin //壓縮圖片
npm install --save gulp-minify-css //壓縮css
npm install --save gulp-uglify //js壓縮