npm-npmscript-gulp-webpack

1昆禽、如何全局安裝一個 node 應用?

npm install -g 應用名稱

2裳瘪、 package.json 有什么作用般眉?

package.json 存儲在項目的根目錄下辛蚊,內(nèi)部保存了項目的相關(guān)信息(名稱违孝、版本等)以及該項目的依賴信息(生產(chǎn)環(huán)境依賴个从、開發(fā)環(huán)境依賴)

{
  "name": "webpack-demo",  // 項目名稱
  "version": "1.0.0",  // 項目版本
  "description": "",  // 項目描述
  "main": "index.js",  // 項目入口
  "keywords": [  // 項目關(guān)鍵字
      "xxx",
      "yyy"
  ],
  "scripts": {  // 自定義的npm腳本搔扁,除test和start兩條命令可以用npm xxx在命令行執(zhí)行之外其他的命令必須用npm run xxx執(zhí)行践啄,這個對象中的鍵值對鍵名代表npm腳本的命令赚哗,而值則代表實際執(zhí)行的命令她紫。
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",  // 項目作者
  "license": "ISC",  // 項目認證信息
  "dependencies": {  // 生產(chǎn)環(huán)境依賴,當安裝該項目時屿储,生產(chǎn)環(huán)境依賴也將同時安裝
  },
  "devDependencies": {  // 開發(fā)環(huán)境依賴贿讹,這些依賴僅在開發(fā)時有效
  }
}

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)品運行時(或生產(chǎn)環(huán)境)需要的依賴模塊添加到 package.json 的 devDependencies 中疯潭,只在開發(fā)時才用到赊堪,發(fā)布后用不到它。當你把項目發(fā)布上線后袁勺,別人使用 npm install使用你的項目時雹食,并不會下載devDependencies里的模塊。

4期丰、node_modules的查找路徑是怎樣的?

從當前文件目錄開始查找node_modules目錄群叶;然后依次進入父目錄,查找父目錄下的node_modules目錄钝荡;依次迭代街立,直到根目錄下的node_modules目錄。

5埠通、npm3與 npm2相比有什么改進赎离?yarn和 npm 相比有什么優(yōu)勢?

npm3相比npm2主要改進了依賴管理方案
a)npm2安裝依賴的時候比較簡單直接,直接按照包的依賴的樹形結(jié)構(gòu)下載填充至本地目錄端辱,缺陷在于太深的目錄樹結(jié)構(gòu)會嚴重影響效率梁剔,甚至在window下可能會超出系統(tǒng)路徑限制的長度虽画,另外有刪node_modules目錄經(jīng)歷的可能都漫長的等待。

b)npm3 加了點算法荣病,npm install 時會按照 package.json 里依賴的順序依次解析码撰,遇到新的包就把它放在第一級目錄,后面如果遇到一級目錄已經(jīng)存在的包个盆,會先判斷版本脖岛,如果版本一樣則忽略,否則會按照 npm2 的方式依次掛在依賴包目錄下颊亮。

c)在包版本差異化不太嚴重的情況下柴梆,這種構(gòu)建方式會幾乎把所有包放在一級目錄下,很大程度下提升了效率以及節(jié)省了部分磁盤空間终惑。

yarn優(yōu)點在于只要通過Yarn安裝過的套件都會在本地目錄產(chǎn)生Cache绍在,也就是說只要安裝過一次,下次重新安裝都會從Cache重新讀取雹有, 安裝速度會提升很多揣苏。

6、webpack是什么件舵?和其他同類型工具比有什么優(yōu)勢

webpack是一款模塊加載器兼打包工具,它能把各種資源JS/CSS/圖片等都作為模塊來使用和處理脯厨。優(yōu)勢如下:

a)webpack 是以 commonJS 的形式來書寫腳本铅祸,但對 AMD/CMD 的支持也很全面,方便舊項目進行代碼遷移合武。

b)webpack可以將代碼拆分成多個區(qū)塊临梗,每個區(qū)塊包含一個或多個模塊,它們可以按需異步加載稼跳,極大地減少了頁面初次加載時間盟庞。

c)webpack 本身只能處理原生的 JS 模塊,但是 loader 轉(zhuǎn)換器可以將各種類型的資源轉(zhuǎn)換成 JS 模塊汤善。這樣什猖,任何資源都可以成為 webpack 可以處理的模塊。

d)webpack 有一個智能解析器红淡,幾乎可以處理任何第三方庫不狮,無論它們的模塊形式是 CommonJS、 AMD 還是普通的 JS 文件在旱。

e)webpack 還有一個功能豐富的插件系統(tǒng)摇零。大多數(shù)內(nèi)容功能都是基于這個插件系統(tǒng)運行的,還可以開發(fā)和使用開源的 webpack 插件桶蝎,來滿足各式各樣的需求驻仅。

f)webpack使用異步 I/O 和多級緩存提高運行效率谅畅,使得它能夠快速增量編譯。

7噪服、npm script是什么毡泻?如何使用?

npm script 是供 npm 使用的腳本命令芯咧,儲存于 package.json 內(nèi)的 scripts 字段內(nèi)

要使用 npm script 牙捉,只需執(zhí)行命令 npm run <command> 即可,部分 npm 內(nèi)置的關(guān)鍵字(如 start 敬飒、 test 等)可以省略 run

8邪铲、gulp是什么?使用 gulp 實現(xiàn)圖片壓縮无拗、CSS 壓縮合并带到、JS 壓縮合并

它是一款nodejs應用。是打造前端工作流的利器英染,打包揽惹、壓縮、合并四康、git搪搏、遠程操作.....
簡單易用,高質(zhì)量的插件

//安裝插件
npm install gulp-imagemin --save-dev //圖片壓縮
npm install gulp-cssnano --save-dev //css壓縮
npm install uglify --save-dev //js壓縮
npm install gulp-jshint --save-dev //js規(guī)范檢查
npm install gulp-concat --save-dev //文件合并
npm install gulp-rename --save-dev //重命名

//gulpfile.js
//引入插件
var gulp = require('gulp'),
    cssnano = require('gulp-cssnano'),
    concat = require('gulp-concat'),
    jshint = require('gulp-jshint'),
    uglify = require('gulp-uglify'),
    imagemin = require('gulp-imagemin'),
    rename = require('gulp-rename'),
 
  //css合并壓縮
  gulp.task('build:css', function() {
      gulp.src('./src/css/*.css')
        .pipe(concat('merge.css'))
        .pipe(rename({
            suffix: '.min'
        }))
        .pipe(cssnano())
        .pipe(gulp.dest('dist/css/'));
  })

  //js合并壓縮
   gulp.task('build:js', function() {
      gulp.src('src/js/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'))
        .pipe(concat('merge.js'))
        .pipe(rename({
          suffix: '.min'
        }))
        .pipe(uglify())
        .pipe(gulp.dest('dist/js/'));
  })

  //圖片壓縮
  gulp.task('build:image', function() {
      gulp.src('src/imgs/*')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/imgs/'));
  })

gulp.task('build', ['build:css', 'build:js', 'build:image']);

//命令行
gulp build

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市闪金,隨后出現(xiàn)的幾起案子疯溺,更是在濱河造成了極大的恐慌,老刑警劉巖哎垦,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囱嫩,死亡現(xiàn)場離奇詭異,居然都是意外死亡漏设,警方通過查閱死者的電腦和手機墨闲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郑口,“玉大人鸳碧,你說我怎么就攤上這事∨诵铮” “怎么了杆兵?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仔夺。 經(jīng)常有香客問我琐脏,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任日裙,我火速辦了婚禮吹艇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昂拂。我一直安慰自己受神,他們只是感情好,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布格侯。 她就那樣靜靜地躺著鼻听,像睡著了一般。 火紅的嫁衣襯著肌膚如雪联四。 梳的紋絲不亂的頭發(fā)上撑碴,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音朝墩,去河邊找鬼醉拓。 笑死,一個胖子當著我的面吹牛收苏,可吹牛的內(nèi)容都是我干的亿卤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鹿霸,長吁一口氣:“原來是場噩夢啊……” “哼排吴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起懦鼠,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤傍念,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后葛闷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡双藕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年淑趾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忧陪。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡扣泊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嘶摊,到底是詐尸還是另有隱情延蟹,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布叶堆,位于F島的核電站阱飘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沥匈,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一蔗喂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧高帖,春花似錦缰儿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至预麸,卻和暖如春瞪浸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背师崎。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工默终, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人犁罩。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓齐蔽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親床估。 傳聞我的和親對象是個殘疾皇子含滴,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容