使用npm scripts構(gòu)建前端工作流

npm原理

npm 腳本的原理非常簡單耕拷。每當(dāng)執(zhí)行npm run,就會(huì)自動(dòng)新建一個(gè) Shell托享,在這個(gè) Shell 里面執(zhí)行指定的腳本命令骚烧。因此,只要是 Shell(一般是 Bash)可以運(yùn)行的命令闰围,就可以寫在 npm 腳本里面赃绊。
特別的是,npm run新建的這個(gè) Shell羡榴,會(huì)將當(dāng)前目錄的node_modules/.bin子目錄加入PATH變量碧查,執(zhí)行結(jié)束后,再將PATH變量恢復(fù)原樣校仑。
這就意味著忠售,當(dāng)前目錄下的node_modules/.bin子目錄里面的所有腳本,都可以直接用腳本名調(diào)用迄沫,而不必加上路徑稻扬。

scripts 配置

其實(shí),scripts的配置就是把bash里面執(zhí)行的命令羊瘩,寫到scripts對(duì)象里泰佳,具體怎么寫要看每個(gè)腳本的配置方法E慰场!J潘3耐ⅰ!

首先汽绢,我們需要搞清楚如何使用 npm 來管理構(gòu)建腳本吗跋。作為核心命令之一的 npm run-script 命令(簡稱 npm run )可以從 package.json 中解析出 scripts 對(duì)象,然后將該對(duì)象的key作為 npm run 的第一個(gè)參數(shù)宁昭,它會(huì)在操作系統(tǒng)的默認(rèn)終端中執(zhí)行該key對(duì)應(yīng)的命令跌宛,請(qǐng)看下面的 package.json 文件:

{
  "name": "express-sticky-note",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "webpack": "webpack --config ./src/webpack.config.js",
    "watch": "onchange 'src/**/*.js' 'src/**/*.less' -- npm run webpack"
  },
  "devDependencies": {
    "onchange": "^3.2.1",
    "webpack": "^2.2.1",
    "webpack-dev-server": "^2.4.2"
  }
}

如果運(yùn)行npm run webpack,那么 npm 將在bash中執(zhí)行webpack --config ./src/webpack.config.js,如果運(yùn)行npm run watch,那么將在bash中執(zhí)行onchange 'src/**/*.js' 'src/**/*.less' -- npm run webpack

另外,我們還可以合并scripts命令,比如在上面的代碼中加入all命令积仗,那么當(dāng)我們運(yùn)行npm run all命令的時(shí)候疆拘,npm run webpack 和 npm run watch兩個(gè)命令都會(huì)執(zhí)行了

{
  "name": "express-sticky-note",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "webpack": "webpack --config ./src/webpack.config.js",
    "watch": "onchange 'src/**/*.js' 'src/**/*.less' -- npm run webpack",
     "all":"npm run webpack && npm run watch" //&&表示順序執(zhí)行,&表示同時(shí)執(zhí)行
  },
  "devDependencies": {
    "onchange": "^3.2.1",
    "webpack": "^2.2.1",
    "webpack-dev-server": "^2.4.2"
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寂曹,一起剝皮案震驚了整個(gè)濱河市哎迄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌隆圆,老刑警劉巖漱挚,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異渺氧,居然都是意外死亡旨涝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門侣背,熙熙樓的掌柜王于貴愁眉苦臉地迎上來白华,“玉大人,你說我怎么就攤上這事贩耐』⌒龋” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵潮太,是天一觀的道長管搪。 經(jīng)常有香客問我,道長消别,這世上最難降的妖魔是什么抛蚤? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮寻狂,結(jié)果婚禮上岁经,老公的妹妹穿的比我還像新娘。我一直安慰自己蛇券,他們只是感情好缀壤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布樊拓。 她就那樣靜靜地躺著,像睡著了一般塘慕。 火紅的嫁衣襯著肌膚如雪筋夏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天图呢,我揣著相機(jī)與錄音条篷,去河邊找鬼。 笑死蛤织,一個(gè)胖子當(dāng)著我的面吹牛赴叹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播指蚜,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼乞巧,長吁一口氣:“原來是場噩夢啊……” “哼纬凤!你這毒婦竟也來了钙蒙?” 一聲冷哼從身側(cè)響起湃累,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤派继,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后捌袜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汁展,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狞谱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年掸刊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了免糕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忧侧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牌芋,到底是詐尸還是另有隱情蚓炬,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布躺屁,位于F島的核電站肯夏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏犀暑。R本人自食惡果不足惜驯击,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耐亏。 院中可真熱鬧徊都,春花似錦、人聲如沸广辰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至李根,卻和暖如春槽奕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背房轿。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國打工粤攒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囱持。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓琼讽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親洪唐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钻蹬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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

  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP凭需。 ...
    ihoey閱讀 6,250評(píng)論 2 36
  • 一问欠、什么是 npm 腳本? npm 允許在package.json文件里面粒蜈,使用scripts字段定義腳本命令顺献。 ...
    豬豬9527閱讀 392評(píng)論 0 0
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,285評(píng)論 4 31
  • 關(guān)鍵詞:npm 定義:npm 允許在package.json文件里面,使用scripts字段定義腳本命令枯怖。 上面代...
    ferrint閱讀 13,607評(píng)論 2 6
  • 迷鹿mirror閱讀 164評(píng)論 0 1