代码之家  ›  专栏  ›  技术社区  ›  Ishan Patel

“react scripts eject”命令的作用是什么?

  •  198
  • Ishan Patel  · 技术社区  · 8 年前

    什么是 npm run eject 命令do?我确实了解其他命令的功能,如启动、构建、测试。但不知道如何弹出。

    5 回复  |  直到 8 年前
        1
  •  254
  •   casieber    8 年前

    create react应用程序封装了它在内部使用的所有npm模块,以便您的包。json将非常干净和简单,您无需担心它。

    然而,如果你想开始做更复杂的事情,并安装可能与create-react-app正在使用的模块交互的模块,那么这些新模块需要知道哪些可用,哪些不可用,这意味着你需要让create-react-app取消对它们的抽象。

    本质上,这就是 react-scripts eject 做它将不再隐藏安装在引擎盖下的内容,而是将这些内容弹出到项目包中。json供大家查看。

        2
  •  116
  •   Johan    6 年前
    npm run eject
    

    注意:这是单向操作。一旦你 eject ,你不能回去!

    如果您对构建工具和配置选择不满意,可以 弹出 在任何时候。此命令将从项目中删除单一生成依赖项。

    相反,它会将所有配置文件和可传递依赖项(Webpack、Babel、ESLint等)复制到您的项目中,以便您完全控制它们。除以下命令外的所有命令 弹出 仍然有效,但它们将指向复制的脚本,以便您可以调整它们。现在你只能靠自己了。

    你不必使用 弹出 . 策划的功能集适合中小型部署,您不应该觉得有义务使用此功能。然而,我们理解,如果您在准备就绪时无法自定义此工具,则此工具将不会有用。

    link to documentation


    弹出的替代方案

    Ejecting 允许您自定义任何内容,但从那时起,您必须自己维护配置和脚本。如果您有许多类似的项目,这可能会让人望而生畏。在这种情况下,我们建议使用fork,而不是弹出 react-scripts 以及您需要的任何其他软件包。 This article 深入探讨如何做到这一点。您可以在中找到更多讨论 this issue.

        3
  •  5
  •   Steven Chen    5 年前

    弹出 :是一种高级操作,允许您自定义“创建反应应用程序(反应脚本)”下的配置

    在执行弹出之前,您需要了解后果: 这是一个单向操作!

    我鼓励您执行eject的唯一原因是:了解构建过程(create-react-app)是如何工作的。

    在弹出之前需要做的另一件事是将项目提交给git。如果您当前的项目尚未添加到git。 npm run eject 或 yarn eject 将失败。

        4
  •  4
  •   Isometriq    5 年前

    有一些包允许在不弹出的情况下进行自定义,就像react脚本和自定义之间的中间件一样:

        5
  •  4
  •   Kiran Maniya    5 年前

    react-scripts 基本上将所有配置和样板文件封装在一个依赖项中,因此您不必从头开始配置整个项目。但是,可能存在这样的情况,即您希望覆盖这些配置以进行构建自定义或更具体的操作。因此,它提供 eject 功能,以便您可以控制这些配置。包括皮棉、捆扎、代码拆分等。

    推荐文章