題目1: 如何全局安裝一個 node 應用?
npm install -g 應用名稱
題目2: package.json 有什么作用?
{
"name": "test-demo0", //項目名稱,發(fā)布項目后拂封,可以通過該名稱在npm上搜索到該項目,必須全網(wǎng)唯一
"version": "1.0.0", //版本號嘿般,當項目做了改動時需要修改版本號再發(fā)布
"description": "這是我的測試版本", //工程描述酬滤。
"main": "index.js", //入口文件
"scripts": { //自定義的npm腳本,除test和start兩條命令可以用npm xxx在命令行執(zhí)行之外其他的命令必須用npm run xxx執(zhí)行,這個對象中的鍵值對鍵名代表npm腳本的命令,而值則代表實際執(zhí)行的命令雅采。
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [ //工程描述關鍵詞
"demo0"
],
"author": "yan", //工程作者
"license": "ISC", //工程遵循的開源協(xié)議
"dependencies": { //工程所依賴的包,當在執(zhí)行npm install命令時慨亲,將會根據(jù)此對象中的屬性來安裝依賴婚瓜。
"marked": "^0.3.6"
},
"devDependencies": { //工程構建者構建工程所依賴的包,這個對象中的依賴僅僅在構建工程時安裝
"easytpl": "^1.0.4"
}
}
題目3: npm install --save app 與 npm install --save-dev app有什么區(qū)別?
-
npm install --save app: 將產(chǎn)品運行時(或生產(chǎn)環(huán)境)需要的依賴模塊添加到 package.json 的 dependencies 中刑棵,在發(fā)布后還需要繼續(xù)使用巴刻,否則就運行不了
-
npm install --save-dev app:將產(chǎn)品的開發(fā)環(huán)境需要的依賴模塊添加到 package.json 的 devDependencies 中,只在開發(fā)時才用到蛉签,發(fā)布后用不到它胡陪。
區(qū)別在于:當你把項目發(fā)布上線后,別人使用 npm install使用你的項目時碍舍,
并不會下載devDependencies里的模塊柠座。
題目4: node_modules的查找路徑是怎樣的?
從當前文件目錄開始查找node_modules目錄;然后依次進入父目錄乒验,查找父目錄下的node_modules目錄愚隧;依次迭代蒂阱,直到根目錄下的node_modules目錄锻全。比如某個模塊的絕對路徑是/home/user/foo.js狂塘,在該模塊中使用require('bar')方式加載模塊時,node將在下面的位置進行搜索:
/home/user/node_modules/bar
/home/node_modules/bar
/node_modules/bar
題目6: webpack是什么鳄厌?和其他同類型工具比有什么優(yōu)勢荞胡?
webpack是一款模塊加載器兼打包工具,它能把各種資源JS/CSS/圖片等都作為模塊來使用和處理了嚎。優(yōu)勢如下:
- webpack 是以 commonJS 的形式來書寫腳本泪漂,但對 AMD/CMD 的支持也很全面,方便舊項目進行代碼遷移歪泳。
- webpack可以將代碼拆分成多個區(qū)塊萝勤,每個區(qū)塊包含一個或多個模塊,它們可以按需異步加載呐伞,極大地減少了頁面初次加載時間敌卓。
- webpack 本身只能處理原生的 JS 模塊,但是 loader 轉(zhuǎn)換器可以將各種類型的資源轉(zhuǎn)換成 JS 模塊伶氢。這樣趟径,任何資源都可以成為 webpack 可以處理的模塊。
- webpack 有一個智能解析器癣防,幾乎可以處理任何第三方庫蜗巧,無論它們的模塊形式是 CommonJS、 AMD 還是普通的 JS 文件蕾盯。
- webpack 還有一個功能豐富的插件系統(tǒng)幕屹。大多數(shù)內(nèi)容功能都是基于這個插件系統(tǒng)運行的,還可以開發(fā)和使用開源的 webpack 插件级遭,來滿足各式各樣的需求香嗓。
- webpack使用異步 I/O 和多級緩存提高運行效率,使得它能夠快速增量編譯装畅。
題目7:npm script是什么靠娱?如何使用?
package.json 文件有一個 scripts 字段掠兄,可以用于指定腳本命令像云,供 npm 直接調(diào)用。npm 內(nèi)置了兩個簡寫的命令:npm test 和 npm start蚂夕,其它命令要寫成 npm run xxx 形式
題目8: 使用 webpack 替換 入門-任務15中模塊化使用的 requriejs
代碼地址:https://github.com/a625689014/webpack
預覽地址:https://a625689014.github.io/webpack/page.html
題目9:gulp是什么迅诬?使用 gulp 實現(xiàn)圖片壓縮、CSS 壓縮合并婿牍、JS 壓縮合并
- 它是一款nodejs應用侈贷。
- 它是打造前端工作流的利器,打包等脂、壓縮俏蛮、合并撑蚌、git、遠程操作.....
- 簡單易用
- 高質(zhì)量的插件
代碼地址:https://github.com/a625689014/gulp
題目10: 開發(fā)一個 node 命令行天氣應用用于查詢用戶當前所在城市的天氣搏屑,發(fā)布到 npm 上去争涌。可以通過如下方式安裝使用(可使用api.jirengu.com里提供的查詢天氣接口)
使用方式: npm i -g weather-demo5
終端輸入:weather可查看當前城市天氣;weather+城市名可忱绷担看對應城市天氣