根据Preact文档,要将React应用转换为Preact,您必须为webpack加上别名:

{
  "resolve": {
    "alias": {
      "react": "preact-compat",
      "react-dom": "preact-compat"
    }
  }
}

您如何使用create-react-app做到这一点,因为这会将webpack隐藏在react-scripts依赖之下?

谢谢!

最佳答案

可能已经过时,但我面临着类似的情况并发现:

  • preact-cli,可用于创建无需任何模块捆绑程序的精确应用程序。这是为preact应用创建启动程序的推荐工具。

  • 要安装:npm install -g preact-cli创建项目:preact create <template-name> <project-name>创建选项的详细信息:preact create -h(例如--yarn)
    可用模板列表:preact list
    注意:一些模板,例如 Material ,使用旧版本的actt 8..,其中最新的是10..(默认模板使用最新的)
  • 使用create-react-app制作Preact应用的解决方案是:
  • npx install -g create-react-app
    
    npx create-react-app my-app --scripts-version @just-boris/preact-scripts
    cd my-app
    
    create-react-app使用的依赖项仍指向 react ,因此需要在根应用程序文件夹下运行:
    npm uninstall react react-dom
    npm install preact
    //before this take a look at your preact dependency version (more info below)
    npm install preact-compat
    

    可以使用yarnadd进行安装,并使用remove进行卸载,以preact-compact调用卸载和安装命令。

    由于Preact X.不需要preact依赖性,因为它与preact/compact本身捆绑在10..下,因此如果您的Preact版本是compact,则无需单独安装它。
    这两个preact-cli依赖项都包含诸如React或ReactDOM之类的元素组件。

    有关create-react-app的更多信息,可以在这里找到:
    https://github.com/preactjs/preact-cli

    第二点,此处记录了8..的解决方法:
    https://github.com/just-boris/create-preact-app

    正式的官方文档:https://preactjs.com/guide/v10/getting-started
    还有一节介绍如何从10..升级到preact-cli

    使用第二种方法创建的应用程序无缝启动,但是我没有尝试导入任何复杂/高级的React组件。
    我个人在将此类组件移植到使用ojit_code创建的Preact应用中时遇到问题。我将再尝试一次,并在需要时尝试提供更多详细信息。

    10-08 15:13