如何全局安裝一個(gè) node 應(yīng)用?
npm install -g 應(yīng)用名稱
package.json 有什么作用蛹找?
{
"name": "test-demo0", //項(xiàng)目名稱,發(fā)布項(xiàng)目后呀闻,可以通過該名稱在npm上搜索到該項(xiàng)目,必須全網(wǎng)唯一
"version": "1.0.0", //版本號挺尾,當(dāng)項(xiàng)目做了改動時(shí)需要修改版本號再發(fā)布
"description": "這是我的測試版本", //工程描述皆尔。
"main": "index.js", //入口文件
"scripts": { //自定義的npm腳本赚抡,除test和start兩條命令可以用npm xxx在命令行執(zhí)行之外其他的命令必須用npm run xxx執(zhí)行蠢甲,這個(gè)對象中的鍵值對鍵名代表npm腳本的命令,而值則代表實(shí)際執(zhí)行的命令滥崩。
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [ //工程描述關(guān)鍵詞
"demo0"
],
"author": "xxx", //工程作者
"license": "ISC", //工程遵循的開源協(xié)議
"dependencies": { //工程所依賴的包漱贱,當(dāng)在執(zhí)行npm install命令時(shí),將會根據(jù)此對象中的屬性來安裝依賴夭委。
"marked": "^0.3.6"
},
"devDependencies": { //工程構(gòu)建者構(gòu)建工程所依賴的包,這個(gè)對象中的依賴僅僅在構(gòu)建工程時(shí)安裝
"easytpl": "^1.0.4"
}
}
npm install --save app 與 npm install --save-dev app有什么區(qū)別?
npm install --save app
: 將產(chǎn)品運(yùn)行時(shí)(或生產(chǎn)環(huán)境)需要的依賴模塊添加到 package.json 的 dependencies 中募强,在發(fā)布后還需要繼續(xù)使用株灸,否則就運(yùn)行不了npm install --save-dev app
:將產(chǎn)品的開發(fā)環(huán)境需要的依賴模塊添加到 package.json 的 devDependencies 中,只在開發(fā)時(shí)才用到擎值,發(fā)布后用不到它慌烧。
區(qū)別在于:當(dāng)你把項(xiàng)目發(fā)布上線后,別人使用 npm install使用你的項(xiàng)目時(shí)鸠儿,
并不會下載devDependencies里的模塊屹蚊。
node_modules的查找路徑是怎樣的?
從當(dāng)前文件目錄開始查找node_modules目錄厕氨;然后依次進(jìn)入父目錄,查找父目錄下的node_modules目錄汹粤;依次迭代命斧,直到根目錄下的node_modules目錄。比如某個(gè)模塊的絕對路徑是/demo/src/index.js嘱兼,在該模塊中使用require('bar')方式加載模塊時(shí)国葬,node將在下面的位置進(jìn)行搜索:
/demo/src/node_modules/bar
/demo/node_modules/bar
/node_modules/bar
npm3與 npm2相比有什么改進(jìn)?yarn和 npm 相比有什么優(yōu)勢? (選做題目)
npm3相對于npm2模塊依賴目錄層欠的改進(jìn),將傳統(tǒng)的嵌套結(jié)構(gòu)改為了平鋪結(jié)構(gòu)
優(yōu)勢: 命令行較簡略
webpack是什么芹壕?和其他同類型工具比有什么優(yōu)勢汇四?
webpack是一款模塊加載器兼打包工具,它能把各種資源JS/CSS/圖片等都作為模塊來使用和處理踢涌。
優(yōu)勢如下:
- webpack 是以
commonJS
的形式來書寫腳本通孽,但對AMD/CMD
的支持也很全面,方便舊項(xiàng)目進(jìn)行代碼遷移睁壁。 - webpack可以將代碼
拆分成多個(gè)區(qū)塊
背苦,每個(gè)區(qū)塊包含一個(gè)或多個(gè)模塊,它們可以按需異步加載堡僻,極大地減少了頁面初次加載時(shí)間糠惫。 - webpack 本身只能處理原生的 JS 模塊,但是
loader 轉(zhuǎn)換器
可以將各種類型的資源轉(zhuǎn)換成 JS 模塊钉疫。這樣硼讽,任何資源都可以成為 webpack 可以處理的模塊。 - webpack 有一個(gè)
智能解析器
牲阁,幾乎可以處理任何第三方庫固阁,無論它們的模塊形式是 CommonJS、 AMD 還是普通的 JS 文件城菊。 - webpack 還有一個(gè)功能豐富的
插件系統(tǒng)
备燃。大多數(shù)內(nèi)容功能都是基于這個(gè)插件系統(tǒng)運(yùn)行的,還可以開發(fā)和使用開源的 webpack 插件凌唬,來滿足各式各樣的需求并齐。 - webpack使用
異步 I/O 和多級緩存
提高運(yùn)行效率,使得它能夠快速增量編譯客税。
npm script是什么况褪?如何使用?
-
package.json
文件有一個(gè) scripts 字段更耻,可以用于指定腳本命令测垛,供 npm 直接調(diào)用。 - npm 內(nèi)置了兩個(gè)簡寫的命令:
npm test
和npm start
秧均,其它命令要寫成npm run xxx
形式
使用 webpack 替換 入門-任務(wù)15中模塊化使用的 requriejs
github: https://github.com/nciilin/trsk/tree/master/%E9%AB%98%E7%BA%A75/webpack
gulp是什么食侮?使用 gulp 實(shí)現(xiàn)圖片壓縮号涯、CSS 壓縮合并、JS 壓縮合并
- 它是一款nodejs應(yīng)用锯七。
- 它是打造前端工作流的利器链快,打包、壓縮起胰、合并久又、git、遠(yuǎn)程操作.....
- 簡單易用
- 高質(zhì)量的插件
github: https://github.com/nciilin/trsk/tree/master/%E9%AB%98%E7%BA%A75/gulp
開發(fā)一個(gè) node 命令行天氣應(yīng)用用于查詢用戶當(dāng)前所在城市的天氣效五,發(fā)布到 npm 上去地消。
npm install hunger-weather233