我正在使用 create-react-app 开发一个项目,并希望将 Flow 添加到我的流程中。 official documentation解释了如何做到这一点,它相对简单,但按照他们的说明,它将它添加到应用程序自己执行的内置 linting/building/compilation 旁边。
根据我的理解,每当我保存或更改我的应用程序代码时,ESLint 都会对我的代码运行样式检查,Babel 正在将我的 ES6 转换为 ES5 JavaScript,而我的 JSX 正在转换为 JS。我只想向该流程添加 Flow 类型检查。
如何配置 create-react-app 以将 Flow 编译添加到其标准构建过程中,这样我就不必从命令行单独运行它?
最佳答案
虽然 create-react-app
确实暴露了一些钩子(Hook),但它们已经 repeatedly refused允许用户自定义/覆盖/合并 webpack 配置的请求。从这个意义上说,“标准构建”的核心在很大程度上是不可定制的。
因此,我认为没有一种方法可以在不弹出或破解 react-scripts
的情况下将流插件真正引入 webpack。
也就是说,如果您主要是在编写代码时寻找即时反馈,您可能可以从您的 IDE 中获得它,而无需涉及 create-react-app
的构建。例如,带有 Flow 扩展的 VSCode 可以为您提供这种类型的开发体验。在进行更改时,您无需在命令行运行任何内容即可标记 Flow 错误:
要在命令行中构建(例如在 CI 环境中),您可以执行以下操作:
"scripts": {
"start": "react-scripts start",
"build": "flow && react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"flow": "flow"
}
诚然,这仍然在命令行单独运行 Flow,但至少它确保 Flow 将运行,并且构建将因任何 Flow 错误而失败,即使您只运行 npm run build
或 yarn 构建
。
其他一些类似的项目确实支持合并 webpack 配置。 创建 react 应用
lists some of these alternatives in their README .
关于webpack - 将流程添加到 create-react-app 项目的编译步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42818736/