新聞中心
本文轉(zhuǎn)載自微信公眾號「全棧成長之路」,作者山月行。轉(zhuǎn)載本文請聯(lián)系全棧成長之路公眾號。

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計(jì),沐川網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:沐川等地區(qū)。沐川做網(wǎng)站價(jià)格咨詢:18982081108
用了兩天,終于把這篇文章趕完了。有興趣的可以加我微信好友 shanyue94 進(jìn)行交流。這篇文章也可以在山月的博客上找到,正文開始
眾所周知,一個(gè) Javasript 項(xiàng)目的腳本類工具,可以使用 package.json 中的 scripts 字段來組織,簡單來說,這就是 npm script。
最典型最常用約定俗成的一個(gè)是 npm start,用以啟動項(xiàng)目:
- {
- "scripts": {
- "start": "next"
- }
- }
約定速成的還有很多,如下所列
- npm install
- npm test
- npm publish
- ...
約定速成的親兒子腳本自然和其它第三方腳本不一樣,如果需要執(zhí)行它,直接使用 npm 前綴即可,如 npm start,那其它腳本呢?那就需要 npm run 前綴了。而 yarn 就沒這么多講究了,一視同仁。
- $ npm run
- $ npm run-script dev
- # 為了簡單方便,等同于
- $ npm run dev
- # yarn
- $ yarn dev
以上是眾所周知的,以下講一講有可能不是眾所周知的
運(yùn)行: npm run dev 與 npm start 的區(qū)別
對于一個(gè)「純生成靜態(tài)頁面打包」的前端項(xiàng)目而言,它們是沒有多少區(qū)別的:生產(chǎn)環(huán)境的部署只依賴于構(gòu)建生成的資源,更不依賴 npm scripts??梢?如何部署前端項(xiàng)目[1]。
使用 create-react-app 生成的項(xiàng)目,它的 npm script 中只有 npm start
- {
- "start": "react-scripts start",
- "build": "react-scripts build",
- "test": "react-scripts test",
- "eject": "react-scripts eject"
- }
使用 vuepress 生成的項(xiàng)目,它的 npm script 中只有 npm run dev
- {
- "dev": "vuepress dev",
- "build": "vuepress build"
- }
在一個(gè)「面向服務(wù)端」的項(xiàng)目中,如 next、nuxt 與 nest。dev 與 start 的區(qū)別趨于明顯,一個(gè)為生產(chǎn)環(huán)境,一個(gè)為開發(fā)環(huán)境
dev: 在開發(fā)環(huán)境啟動項(xiàng)目,一般帶有 watch 選項(xiàng),監(jiān)聽文件變化而重啟服務(wù),此時(shí)會耗費(fèi)大量的 CPU 性能,不宜放在生產(chǎn)環(huán)境
start: 在生產(chǎn)環(huán)境啟動項(xiàng)目
在 nest 項(xiàng)目中進(jìn)行配置
- {
- "start": "nest start",
- "dev": "nest start --watch"
- }
運(yùn)行:Script Hooks -> 如何把新項(xiàng)目快速跑起來
新人入職新上手項(xiàng)目,如何把它跑起來,這是所有人都會碰到的問題:所有人都是從新手開始的。
有可能你會脫口而出:npm run dev/npm start,但實(shí)際工作中,處處藏坑,往往沒這么簡單。
- 查看是否有 CI/CD,如果有跟著 CI/CD 部署的腳本跑命令
- 查看是否有 dockerfile,如果有跟著 dockerfile 跑命令
- 查看 npm scripts 中是否有 dev/start,嘗試 npm run dev/npm start
- 查看是否有文檔,如果有跟著文檔走。為啥要把文檔放到最后一個(gè)?原因你懂的
但即便是十分謹(jǐn)慎,也有可能遇到以下幾個(gè)叫苦不迭、浪費(fèi)了一下午時(shí)間的坑:
- 前端有可能在「本地環(huán)境啟動時(shí)需要依賴前端構(gòu)建時(shí)所產(chǎn)生的文件」,所以有時(shí)需要「先正常部署一遍,再試著按照本地環(huán)境啟動 (即需要先 npm run build 一下,再 npm run dev/npm start)」。(比如,一次我們的項(xiàng)目 npm run dev 時(shí)需要 webpack DllPlugin 構(gòu)建后的東西)
- 別忘了設(shè)置環(huán)境變量或者配置文件
因此,設(shè)置一個(gè)少的 script,可以很好地避免后人踩坑,更重要的是,可以避免后人罵你
- {
- "scripts": {
- "start": "npm run dev",
- "config": "node assets && node config",
- "build": "webpack",
- // 設(shè)置一個(gè) dev 的鉤子,在 npm run dev 前執(zhí)行,此處有可能不是必須的
- "predev": "npm run build",
- "dev": "webpack-dev-server --inline --progress"
- }
- }
Hooks
在 npm script 中,對于每一個(gè)命令都有 Pre/Post 鉤子,分別在命令執(zhí)行前后執(zhí)行
- npm run


咨詢
建站咨詢