webpack - 将流程添加到 create-react-app 项目的编译步骤

标签 webpack eslint babeljs flowtype create-react-app

我正在使用 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 错误:

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"
}

诚然,这仍然在命令行单独运行 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/

相关文章:

reactjs - 在 React 应用程序中使用使用 React、Redux 和 React-Redux 完成的组件并使用 Webpack 构建时出错

javascript - Webpack,导入 SVG 的完整源代码而不是路径

javascript - Jest 无法解析带有 @ (at) 字符的导入

javascript - 我可以将我的 React.Component 子类添加到 ESLint 规则吗?

reactjs - react /Mocha 测试 : can't find imported components

javascript - 无法使用 webpack 在 GitHub Actions 中为生产构建

webpack - ESLint不是构造函数

javascript - JS 对象解构以访问属性以进行评估而不实例化变量

javascript - 用 bool 注解修饰 JS 对象

javascript - 以编程方式将预设传递给 babel