精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

跑 Npm Scripts,其實(shí)有更香的方式

開發(fā) 開發(fā)工具
每個(gè)項(xiàng)目都有 npm scripts,大多數(shù)人只是用它們而不會(huì)調(diào)試它們,所以就算每天用也不知道這些工具的原理。這些命令行工具都是在 package.json 中聲明一個(gè) bin 字段,然后 install 之后就會(huì)放到 node_modules/.bin 下。可以 node node_modules/.bin/xx 來跑,可以 npx xx 來跑,最常用的還是 npm scripts,通過 n

每個(gè)前端項(xiàng)目都有 npm scripts,我們會(huì)用 npm scripts 來組織編譯、打包、lint 等任務(wù)。

大家可能經(jīng)常會(huì)跑 npm scripts,但卻對(duì)這些命令行工具是怎么實(shí)現(xiàn)的并不了解。

那如果想了解這些工具的實(shí)現(xiàn)原理,應(yīng)該怎么做呢?

這就是今天的主題:調(diào)試 npm scripts。

這些命令行工具的 package.json 里都會(huì)有個(gè) bin 字段,來聲明有哪些命令:

圖片

npm install 這個(gè)包以后,就會(huì)放到 node_modules/.bin 目錄下:

圖片

這樣我們就可以通過 node ./node_modules/.bin/xx 來跑不同的工具了。

我們也可以用 npx 來跑,比如 npx xx,它的作用就是執(zhí)行 node_modules/.bin 下的本地命令,如果沒有的話會(huì)從 npm 下載然后執(zhí)行。

當(dāng)然,最常用的還是放到 npm scripts 里:

圖片

這樣就直接 npm run xxx 跑就行了。

npm scripts 本質(zhì)上還是用 node 來跑這些 script 代碼,所以調(diào)試他們和調(diào)試其他 node 代碼沒啥區(qū)別。

也就是可以這樣跑:

在 .vscode/launch.json 的調(diào)試文件里,選擇 node 的 launch program:

圖片

用 node 執(zhí)行 node_modules/.bin 下的文件,傳入?yún)?shù)即可:

圖片

其實(shí)還有更簡(jiǎn)單的方式,VSCode Debugger 對(duì) npm scripts 調(diào)試的場(chǎng)景做了封裝,可以直接選擇 npm 類型的調(diào)試配置:

圖片

直接指定運(yùn)行的命令即可:

圖片

比如我們就用這個(gè) create-react-app 創(chuàng)建的 react 項(xiàng)目來嘗試下 npm scripts 的調(diào)試:

先去 node_modules/.bin 下這個(gè)文件里打個(gè)斷點(diǎn):

圖片

然后點(diǎn)擊 debug 啟動(dòng):

圖片

你會(huì)發(fā)現(xiàn)會(huì)執(zhí)行 scripts 下的 start 模塊:

圖片

我們?cè)偃?start 下打個(gè)斷點(diǎn):

代碼執(zhí)行到這里斷住:

圖片

這個(gè) config 就是 webpack 的配置:

圖片

再往下走,會(huì)發(fā)現(xiàn)啟動(dòng)了一個(gè) server:

圖片

我們?cè)?server 啟動(dòng)的回調(diào)函數(shù)里打個(gè)斷點(diǎn),看看瀏覽器是怎么打開的:

圖片

點(diǎn)擊 step into 進(jìn)入這個(gè)斷點(diǎn):

圖片

然后單步執(zhí)行,會(huì)走到這樣的代碼:

依次通過 osascript 來啟動(dòng)這些瀏覽器,啟動(dòng)失敗的話,try catch 里直接忽略了:

圖片

這些瀏覽器 hover 上去就可以看到:

圖片

釋放斷點(diǎn),你就會(huì)發(fā)現(xiàn)瀏覽器打開了:

圖片

這樣,我們不就梳理了一遍 react-scripts start 的流程么?

總結(jié)一下就是這樣的:

  • 根據(jù)輸入的 start 命令,執(zhí)行 scripts/start 模塊
  • 根據(jù)配置,創(chuàng)建 webpack 的 Compiler 對(duì)象
  • 創(chuàng)建 WebpackDevServer
  • server 啟動(dòng)之后,啟動(dòng)瀏覽器打開 url
  • 打開 url 的實(shí)現(xiàn)就是通過 osascripts 依次嘗試那些瀏覽器

這樣調(diào)試完一遍,我們就對(duì) npm run start 有了更深入的認(rèn)識(shí)。

而且,調(diào)試的方式跑 script 和直接命令行 npm run start 沒啥區(qū)別。

要說區(qū)別,唯一的區(qū)別可能就是這個(gè):

默認(rèn)調(diào)試模式下,輸出的內(nèi)容會(huì)在 Debug Console 面板顯示:

圖片

但這個(gè)也可以改:

圖片

可以切換成 integratedTerminal,那就會(huì)輸出在 terminal 了:

圖片

這樣就和平時(shí) npm run start 執(zhí)行沒了任何區(qū)別,而且還可以斷點(diǎn)調(diào)試,它不香么?

我們?cè)賮砜磦€(gè)例子,比如 vue cli 創(chuàng)建的 vue 項(xiàng)目,在 vue.config.js 里可以改 webpack 配置:

圖片

但如果你想知道默認(rèn)的配置是啥呢?console.log 么?

console.log 打印大對(duì)象可不是個(gè)好主意,它是這樣的:

圖片

有的同學(xué)說用 JSON.stringify,那個(gè)更難看,特別長(zhǎng)的一串。

如果你會(huì)了調(diào)試 npm scripts 呢?

你就可以加一個(gè) npm 類型的調(diào)試配置:

圖片

然后打個(gè)斷點(diǎn),debug 來跑:

圖片

啥配置都能看到,這不香么?

我舉的例子只是 webpack 的,但其余的 npm scripts,比如 babel、tsc、eslint、vite 等等都是一樣的調(diào)試方式。

總結(jié)

每個(gè)項(xiàng)目都有 npm scripts,大多數(shù)人只是用它們而不會(huì)調(diào)試它們,所以就算每天用也不知道這些工具的原理。

這些命令行工具都是在 package.json 中聲明一個(gè) bin 字段,然后 install 之后就會(huì)放到 node_modules/.bin 下。

可以 node node_modules/.bin/xx 來跑,可以 npx xx 來跑,最常用的還是 npm scripts,通過 npm run xx 來跑。

npm scripts 的調(diào)試就是 node 的調(diào)試,只不過 VSCode Debugger 做了簡(jiǎn)化,可以直接創(chuàng)建 npm 類型的調(diào)試配置。

把 console 配置為 integratedTerminal 之后,日志會(huì)輸出到 terminal,和平時(shí)直接跑 npm run xx 就沒區(qū)別了。而且還可以斷點(diǎn)看看執(zhí)行邏輯。

跑 npm scripts 之余,還可以理一下它的實(shí)現(xiàn)邏輯,哪里感興趣斷在哪里,這不比直接跑香么?

責(zé)任編輯:武曉燕 來源: 神光的編程秘籍
相關(guān)推薦

2012-10-25 14:14:14

云計(jì)算架構(gòu)師峰會(huì)

2020-12-02 18:57:00

Wi-FiMiMo無線

2015-04-10 13:27:44

微軟Azure萊森米

2019-10-09 09:42:39

MySQL陷阱數(shù)據(jù)庫(kù)

2021-04-15 06:02:50

CSS 三角形技巧

2022-05-27 15:41:22

微軟騰訊

2017-03-31 01:37:01

FreeWheel運(yùn)維

2022-02-23 20:42:40

HTMLmarkdownturndown

2022-11-17 15:05:12

學(xué)術(shù)

2011-07-19 15:44:18

Xcode 卸載

2025-11-03 04:00:00

2021-08-02 13:05:49

瀏覽器HTTP前端

2018-12-21 09:02:35

5G芯片供應(yīng)商

2010-05-21 09:09:00

2020-09-27 08:33:40

微信QQ傳文件

2009-09-22 13:25:54

Hibernate M

2020-04-07 19:16:31

微信隱藏功能移動(dòng)應(yīng)用

2010-03-25 19:01:43

ngnix配置文件

2019-01-04 12:46:03

程序員技能溝通

2023-09-27 10:23:19

NoSQL數(shù)據(jù)模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产一区二区三区欧美| 《视频一区视频二区| 91成人天堂久久成人| 在线免费看黄色片| 亚洲黄色网址| 国产欧美日韩激情| 亚洲一区免费| 亚洲免费观看高清完整版在线观看 | caoprom在线| av不卡免费在线观看| 国产日本欧美在线观看| 日本熟伦人妇xxxx| 精品日韩在线| 亚洲国内高清视频| 亚洲天堂网2018| 黑人巨大精品欧美一区二区桃花岛| 日韩毛片视频在线看| 另类欧美小说| 亚洲va久久久噜噜噜无码久久| 久久精品日产第一区二区| 久久亚洲国产精品| 女人十八毛片嫩草av| 大陆精大陆国产国语精品| 欧美日韩三级视频| 韩国日本在线视频| 爱看av在线入口| 亚洲毛片av在线| 亚洲狠狠婷婷综合久久久| 天天色棕合合合合合合合| 国产乱人伦偷精品视频不卡| 国产精品高潮粉嫩av| 日本三级一区二区| 黄色成人91| 超碰精品一区二区三区乱码| 成人欧美一区二区三区黑人一 | 97在线免费视频观看| 伊人免费在线| 久久久久久久久久久电影| 国产精品一级久久久| av男人天堂网| 激情五月播播久久久精品| 国产精品欧美激情| 波多野结衣小视频| 久久精品系列| 日韩免费观看网站| 亚洲免费在线观看av| 日韩午夜免费| 欧美亚洲视频一区二区| 日韩欧美亚洲视频| 中文亚洲免费| 国产91久久婷婷一区二区| 国产精品第5页| 久久精品欧洲| 国产精品香蕉国产| 中文字幕av资源| 久久av老司机精品网站导航| 91精品久久久久久久久久| 亚洲一区二区三区网站| 久久成人免费网| 亚洲999一在线观看www| 精品久久人妻av中文字幕| 美日韩一区二区| 国产精品一区二区三区毛片淫片 | 美腿丝袜一区二区三区| 91精品久久久久久久久中文字幕| 亚洲一级视频在线观看| 国产综合色精品一区二区三区| 92看片淫黄大片看国产片| 国产高清在线免费| 99久久久国产精品| 日韩av影视| 黄av在线播放| 亚洲成在线观看| 欧美激情成人网| 四虎成人精品一区二区免费网站| 欧美一区二区三区免费视频| 国产av一区二区三区传媒| 香蕉视频一区| 俺去啦;欧美日韩| 免费看黄色的视频| 精品欧美久久| 欧美高清视频在线| 久久久精品免费看| 男人操女人的视频在线观看欧美| 91色中文字幕| 视频三区在线观看| 国产欧美一区二区精品婷婷 | 在线不卡免费欧美| 91亚洲一线产区二线产区| 久操国产精品| 美女久久久久久久久久久| 日韩熟女精品一区二区三区| 视频一区在线视频| 成人亲热视频网站| 日韩精品福利| **网站欧美大片在线观看| 国产黄色片免费在线观看| 成人激情综合| 日韩女优电影在线观看| 蜜桃精品一区二区| 中文字幕午夜精品一区二区三区| 91成人国产在线观看| 国产女人高潮的av毛片| 2020国产精品| 久久免费一级片| a∨色狠狠一区二区三区| 精品国产一区二区三区av性色| av在线播放中文字幕| 亚洲国产欧美国产综合一区| 国产区精品在线观看| 亚洲人妻一区二区三区| 亚洲乱码中文字幕| 美女网站免费观看视频| 成人av综合网| 操日韩av在线电影| 丰满熟女人妻一区二区三| 成人不卡免费av| 中文字幕av导航| 波多野结衣亚洲一二三| 精品久久久久久久久久久久久久久 | 伊人222成人综合网| 欧美三级在线视频| 国产精品1000部啪视频| 精品成人免费| av一区观看| 九七久久人人| 欧美日韩亚洲另类| 婷婷色一区二区三区| 亚洲免费成人| 国产高清在线一区二区| 超碰在线观看免费版| 欧美色涩在线第一页| 蜜桃传媒一区二区亚洲av| 亚洲三级影院| 国产伦精品一区二区三区照片| 丝袜美女在线观看| 欧美一卡2卡三卡4卡5免费| 成人黄色短视频| 蜜桃视频一区二区三区| 午夜老司机精品| 丁香婷婷久久| 日韩中文字幕国产精品| 免费在线不卡av| 欧美国产精品一区二区三区| 18岁视频在线观看| 国产麻豆精品久久| 国产成人综合精品| 成人在线二区| 欧美性大战久久久久久久蜜臀| www.黄色在线| 麻豆精品国产91久久久久久| 亚洲乱码一区二区三区三上悠亚| 精品成人免费一区二区在线播放| 亚洲一区999| 国产精品国产精品国产| 中文字幕免费不卡在线| 色天使在线观看| 欧美国产精品| 国产精品一区二区三区免费观看| 欧美1234区| 亚洲国产精品小视频| 国产精品国产三级国产专区52| 99r精品视频| 最近免费中文字幕中文高清百度| 国产日韩欧美一区二区三区| 国产精品久久久久久久久久久新郎 | 国产精品视频久久| 国内精品不卡| 亚洲爱爱爱爱爱| 黄色片中文字幕| 国产精品亲子伦对白| aaaaaaaa毛片| 国产在线欧美| 欧美精品一区二区三区在线看午夜| 91tv亚洲精品香蕉国产一区| 久久香蕉国产线看观看av| 午夜免费福利视频| 欧美日韩在线看| 久久久久久国产免费a片| 精品在线视频一区| 韩日视频在线观看| 精品一区欧美| 99超碰麻豆| 视频在线日韩| 欧美精品在线视频观看| 欧美日韩在线中文字幕| 欧美日韩免费一区二区三区视频 | 超碰最新在线| 日韩精品中文字| 国产又粗又黄又爽的视频| 亚洲综合激情小说| 能免费看av的网站| 韩国v欧美v亚洲v日本v| 欧美黄色免费影院| 欧美高清不卡| 亚洲精品中文综合第一页| 中文字幕一区二区三区日韩精品| 日本精品久久久| www.久久ai| 在线视频国产日韩| 蜜桃av噜噜一区二区三区麻豆| 日本精品视频一区二区三区| 激情四射综合网| 欧美激情资源网| 亚洲图片综合网| 激情av综合网| 乱子伦视频在线看| 国产精品扒开腿做爽爽爽软件| 日本一区视频在线| 久久久久久毛片免费看| 91在线网站视频| 影视一区二区三区| 午夜精品视频在线| bt在线麻豆视频| 在线一区二区日韩| 欧美18xxxxx| 欧美精品一区二区三区蜜桃 | 国产精品麻豆成人av电影艾秋| 97碰在线观看| 欧美xxxx做受欧美88bbw| 色哟哟入口国产精品| 色视频在线看| 日韩av在线直播| 黄色www视频| 欧美一区二区成人6969| 中文字幕日韩经典| 欧美中文一区二区三区| 久久精品无码av| 香蕉成人伊视频在线观看| 青青草偷拍视频| 亚洲欧美日韩中文字幕一区二区三区 | 乱色精品无码一区二区国产盗| 日韩视频不卡中文| 一二三四区在线| 欧美日韩一区二区三区免费看| 免费观看日批视频| 日韩欧美亚洲范冰冰与中字| 制服.丝袜.亚洲.中文.综合懂色| 亚洲成人激情自拍| 国产一卡二卡在线播放| 亚洲成人精品一区二区| 伊人365影院| 亚洲va欧美va人人爽| 久久久精品视频在线 | 日韩三级视频在线| 图片区日韩欧美亚洲| 国产精品6666| 懂色aⅴ精品一区二区三区蜜月| 精品无码m3u8在线观看| 亚洲成人资源在线| 成人免费看片98欧美| 精品久久久久久久久久久久久| 青青操免费在线视频| 日韩欧美在线看| av手机天堂网| 欧美日韩精品二区第二页| 91精品在线视频观看| 欧美精品色一区二区三区| 国产乱人乱偷精品视频| 日韩欧美国产不卡| 人妻精品一区二区三区| 亚洲老司机av| 日韩在线资源| 欧美激情videoshd| 日韩精品极品| 国产精品久久色| 国产一区二区三区亚洲综合| 国产日韩一区二区| 久久99国内| 一区二区三区久久网| 午夜天堂精品久久久久| 久久黄色片视频| 久久天堂成人| 91丝袜超薄交口足| caoporm超碰国产精品| 欧美18—19性高清hd4k| 最近日韩中文字幕| 国产精品111| 91成人在线免费观看| 国产绿帽一区二区三区| 精品乱人伦小说| 天堂a中文在线| www.欧美三级电影.com| sis001亚洲原创区| 51精品在线观看| 99综合99| 蜜桃视频成人| 欧美精品日韩| 99视频在线视频| 成人精品免费看| 五月婷婷婷婷婷| 亚洲午夜免费福利视频| 中文字幕在线观看国产| 亚洲成人黄色网| 日本中文字幕在线看| 97国产精品人人爽人人做| 日本成人在线网站| 久久国产精品久久精品国产| 一区二区免费不卡在线| 激情内射人妻1区2区3区| 国产suv精品一区二区6| 中文天堂资源在线| 偷拍与自拍一区| 精品国产亚洲一区二区麻豆| 一个色综合导航| 多野结衣av一区| 亚洲精品日韩激情在线电影| 欧洲乱码伦视频免费| 日本福利视频一区| 激情综合网激情| 五月婷婷婷婷婷| 色婷婷精品久久二区二区蜜臀av | 中文字幕精品无| 亚洲激情视频网站| 91在线中文| 成人h猎奇视频网站| 欧美精品momsxxx| 免费av手机在线观看| 国产精品影视在线| 男人的午夜天堂| 欧美亚洲高清一区| 国产尤物视频在线| 55夜色66夜色国产精品视频| 97成人在线| 亚洲爆乳无码精品aaa片蜜桃| 久久精品国产**网站演员| 久久久视频6r| 在线影视一区二区三区| 免费人成黄页在线观看忧物| 97视频免费看| 欧美一级三级| 亚欧无线一线二线三线区别| 成人免费高清在线观看| 91aaa在线观看| 日韩午夜精品电影| 中文字幕在线观看网站| 亚洲综合第一页| 中文在线播放一区二区| www.久久久久久久久久久| 国产精品久久久久久一区二区三区| 国产亚洲久一区二区| 国产一区二区动漫| 久久亚洲精品中文字幕| 亚洲一区美女| 久久99精品国产麻豆婷婷洗澡| 国精产品视频一二二区| 欧美日韩1区2区| 欧美a在线看| 成人黄色免费在线观看| 中文一区一区三区免费在线观看| 亚洲成人激情小说| 亚洲一级在线观看| 天天插天天干天天操| 2019最新中文字幕| 国产一区二区精品福利地址| 亚洲xxxx2d动漫1| 成人免费一区二区三区视频| va视频在线观看| 午夜精品久久久久久久99热浪潮| 美国十次av导航亚洲入口| 国产a视频免费观看| 中文字幕欧美激情| 99精品久久久久久中文字幕| 欧美激情视频在线观看| 欧美一区二区三区红桃小说| 成年人小视频网站| 国产精品传媒入口麻豆| 精品人妻无码一区二区色欲产成人 | 伊人久久久久久久久久久久 | 高清毛片在线观看| 欧美午夜免费| 国模大尺度一区二区三区| 国产在线免费视频| 亚洲欧美日韩在线一区| 高清一区二区| 亚洲熟妇无码一区二区三区导航| 国产亚洲精久久久久久| 91精品视频免费在线观看| 午夜伦理精品一区| 国产欧美一区二区三区精品观看| 中文字幕日韩综合| 午夜av区久久| 在线播放麻豆| 国产一区不卡在线观看| 美女脱光内衣内裤视频久久影院| 久久精品波多野结衣| 亚洲欧美国内爽妇网| 亚洲1区在线观看| 别急慢慢来1978如如2| 亚洲愉拍自拍另类高清精品| 黄色网址在线播放| y111111国产精品久久婷婷| 久久精品网址| 日本三级黄色大片| 久久久精品中文字幕| 国产一区二区电影在线观看| 9.1在线观看免费| 欧美色综合天天久久综合精品| 激情国产在线| 亚洲色婷婷久久精品av蜜桃|