2017-03-15 104 views
2

我正在使用create-react-app處理項目,並想將流程添加到我的流程中。 official documentation解釋瞭如何做到這一點,它是相對簡單的,但按照他們的指示,它將它與內置的linting/building/compilation一起添加到應用程序中。基於我的理解,任何時候我保存或更改我的應用程序代碼時,ESLint都會對我的代碼運行樣式檢查,Babel正在將ES6轉換爲ES5 JavaScript,並且我的JSX正在轉換爲JS。我只想將Flow類型檢查添加到該進程。將流程添加到create-react-app項目的編譯步驟

如何配置create-react-app將Flow編譯添加到其標準構建過程,以便我不必從命令行單獨運行它?

回答

1

一個選項是eject該應用程序並自定義配置。另一種選擇是分叉react-scripts並構建一個定製版本,它將在構建過程中添加flow檢查。

2

雖然create-react-app確實公開了一些鉤子,但他們有repeatedly refused請求允許用戶定製/覆蓋/合併webpack配置。從這個意義上說,「標準構建」的核心在很大程度上是不可定製的。

因此,我不認爲有一種方法可以將流插件真正帶入webpack,而不會彈出或駭入react-scripts。也就是說,如果您主要在代碼中查找即時反饋,那麼您可以從IDE獲得此信息,而不涉及create-react-app的構建。例如,具有Flow擴展的VSCode可以爲您提供這種類型的開發體驗。當你做出改變,你沒有運行在命令行任何事都要標記流量的錯誤:

Flow error in VSCode

在命令行建設(例如,在CI環境),你能做些什麼像:

"scripts": { 
    "start": "react-scripts start", 
    "build": "flow && react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject", 
    "flow": "flow" 
} 

這是不可否認仍然分別在命令行中運行的流程,但至少它可以確保流運行,並生成將失敗的任何流量的錯誤,即使你只運行npm run buildyarn build

一些其他類似項目支持webpack配置的合併。 create-react-applists some of these alternatives in their README