1.如何全局安裝一個 node 應(yīng)用?
npm install -g kuma-weather
2.package.json 有什么作用蕴侧?
- npm init 會在當(dāng)前目錄下生成package.json的文件
- package.json用于配置模塊包的基本信息铣缠、依賴管理朦促、使用方式、可執(zhí)行文件地址举娩、主程序入口等。
"main": "index.js"
main字段指定了加載的入口文件,require('moduleName')就會加載這個文件饰躲。這個字段的默認(rèn)值是模塊根目錄下面的index.js。
"bin": {
"weather": "./index.js"
}
bin參數(shù)是{ 命令名:文件名 }的格式臼隔,bin即代表二進(jìn)制嘹裂。bin參數(shù)指定了各個內(nèi)部命令對應(yīng)的可執(zhí)行文件的位置,相當(dāng)于在/user/local/bin下創(chuàng)建了內(nèi)部命令的快捷方式摔握。執(zhí)行weather相當(dāng)于加載index.js寄狼。index.js文件的頭部要寫上#!/usr/bin/env node, 表示以node運行這個二進(jìn)制文件
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "git add .; git commit -am 'update'; git push",
"creatfile": "touch 1.js",
"delete": "rm -rf 1.js"
}
可將開發(fā)中一系列復(fù)雜或者繁瑣的操作一次編輯完并給其指定一個代號(keyName),在執(zhí)行環(huán)境下只要直接輸入對應(yīng)的 npm run keyName即可批處理執(zhí)行氨淌,提高開發(fā)效率泊愧。
3.npm install --save app 與 npm install --save-dev app有什么區(qū)別?
- npm install -save xxx會將依賴xxx模塊安裝在局部,同時將xxx保存到package.json中的dependencies字段中盛正。在package.json文件夾下執(zhí)行npm install時會自動下載這些項目依賴删咱。
- npm install -save-dev xxx會將依賴xxx安裝在局部,同時將xxx保存到package.json中的devDependencies字段中豪筝。通過npm install命令不會自動下載這些依賴痰滋,必須通過手動下載。
4.nodule_modules的查找路徑是怎樣的?
- require的內(nèi)容以./或者../開頭的按照正常的查找路徑壤蚜。
- require內(nèi)容不加./或者../查找的js文件(非核心模塊)即寡。先從當(dāng)前目錄下的nodule_modules查找,不存在就依次向上遞歸查找袜刷,到上級目錄的nodule_modules中查找聪富,直到系統(tǒng)根目錄。
5.npm3與 npm2相比有什么改進(jìn)著蟹?yarn和 npm 相比有什么優(yōu)勢? (選做題目)
- npm3在npm2簡單直接安裝依賴包(樹形結(jié)構(gòu)下載)的基礎(chǔ)上加了些算法墩蔓。它會按照package.json里的依賴順序依次解析,遇到新的包就把它放在第一級目錄萧豆,后面如果遇到一級目錄已存在的包則先判斷版本奸披,版本一致則忽略,否則按照npm2的方式依次掛在依賴包目錄下涮雷。
- yarn的優(yōu)勢:
- 多平臺精準(zhǔn)校準(zhǔn)阵面,只要將yarn.lock保存到源碼庫,任何地方安裝,版本都不會出現(xiàn)偏差样刷。
- 速度快仑扑,節(jié)約時間。
- 支持clean命令置鼻,可以快速清理包文件镇饮。
- 一個單獨的請求不會導(dǎo)致整個安裝失敗,可以反復(fù)重試直到鏈接恢復(fù)正常箕母。
6.webpack是什么储藐?和其他同類型工具比有什么優(yōu)勢?
- Webpack 是當(dāng)下最熱門的前端資源模塊化管理和打包工具嘶是。它可以將許多松散的模塊按照依賴和規(guī)則打包成符合生產(chǎn)環(huán)境部署的前端資源钙勃。還可以將按需加載的模塊進(jìn)行代碼分隔,等到實際需要的時候再異步加載俊啼。通過 loader 的轉(zhuǎn)換肺缕,任何形式的資源都可以視作模塊,比如 CommonJs 模塊授帕、 AMD 模塊同木、 ES6 模塊、CSS跛十、圖片彤路、 JSON、Coffeescript芥映、 LESS 等洲尊。
- 優(yōu)勢:
- 對 CommonJS 、 AMD 奈偏、ES6的語法做了兼容
- 對js坞嘀、css、圖片等資源文件都支持打包
- 串聯(lián)式模塊加載器以及插件機(jī)制惊来,讓其具有更好的靈活性和擴(kuò)展性丽涩,例如提供對CoffeeScript、ES6的支持
- 有獨立的配置文件webpack.config.js
- 可以將代碼切割成不同的chunk裁蚁,實現(xiàn)按需加載矢渊,降低了初始化時間
- 支持 SourceUrls 和 SourceMaps,易于調(diào)試
- 具有強(qiáng)大的Plugin接口枉证,大多是內(nèi)部插件矮男,使用起來比較靈活
- webpack 使用異步 IO 并具有多級緩存。這使得 webpack 很快且在增量編譯上更加快
7.npm script是什么室谚?如何使用毡鉴?
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"start": "git add .; git commit -am 'update'; git push",
"creatfile": "touch 1.js",
"delete": "rm -rf 1.js"
}
可將開發(fā)中一系列復(fù)雜或者繁瑣的操作一次編輯完并給其指定一個代號(keyName)崔泵,在執(zhí)行環(huán)境下只要直接輸入對應(yīng)的 npm run keyName即可批處理執(zhí)行,提高開發(fā)效率眨补。
### 8.使用 webpack 替換 入門-任務(wù)15中模塊化使用的 requriejs
[效果](https://kumabearplus.github.io/27/)
[代碼](https://github.com/kumabearplus/27)
### 9.gulp是什么管削?使用 gulp 實現(xiàn)圖片壓縮、CSS 壓縮合并撑螺、JS 壓縮合并
> gulp是一種開源自動化構(gòu)建工具,基于node.js構(gòu)建崎弃,API易于學(xué)習(xí)甘晤,插件質(zhì)量高
[效果](https://kumabearplus.github.io/28/)
[代碼](https://github.com/kumabearplus/28)
### 10.開發(fā)一個 node 命令行天氣應(yīng)用用于查詢用戶當(dāng)前所在城市的天氣,發(fā)布到 npm 上去饲做∠呋椋可以通過如下方式安裝使用(可使用api.jirengu.com里提供的查詢天氣接口) (選做題目)
安裝:
npm install -g kuma-weather
運行:
weather city
// city is optional