首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将创建-反应-应用程序转换为Preact?

如何将创建-反应-应用程序转换为Preact?
EN

Stack Overflow用户
提问于 2019-09-25 15:35:52
回答 3查看 4.9K关注 0票数 7

根据Preact文档,要将React应用程序转换为Preact,您必须化名为webpack:

代码语言:javascript
复制
{
  "resolve": {
    "alias": {
      "react": "preact-compat",
      "react-dom": "preact-compat"
    }
  }
}

你怎么能用create-react-app做到这一点,因为这就隐藏了webpack对“反应脚本”的依赖?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-18 02:34:40

还有预演CLI,它允许您创建预动作应用程序,而不需要任何模块绑定器。它是为Preact应用程序创建初学者推荐的工具。

代码语言:javascript
复制
npx preact-cli create default my-project
# Go into the generated project folder
cd my-project
# Start a development server
npm run dev

注意使用Preact 8.x的模板。最新版本(截至7/25/21)是Preact X (Preact version 10.x)。默认模板使用Preact X。

如果您想使用create-react-app来制作Preact应用程序,您可以使用这个解决方法(有文档的这里):

代码语言:javascript
复制
npx create-react-app my-app --scripts-version @just-boris/preact-scripts
cd my-app
# The dependencies used by `create-react-app` are still pointing to
# react, so under root application folder it's required to run:
npm uninstall react react-dom
npm install preact
# `preact-compact` is bundled with `preact` under `preact/compact` in 
# Preact X, but if you are using an older version run this:
# npm install preact-compact

这也可以通过纱线来完成。

根据我的经验,用第二种方法创建的应用程序可以无缝地启动。但是,我没有尝试导入任何复杂/高级的React组件。我在将这些组件移植到用preact-cli创建的Preact应用程序时遇到了问题。如果需要的话,我会再试一次,并提供更多细节。

票数 2
EN

Stack Overflow用户

发布于 2020-04-07 11:02:49

我认为最优雅的解决方案是使用customize-cra。这样,您可以避免弹出或维护单独的create-react-app分叉。

  • 首先,您需要安装customize-cra
代码语言:javascript
复制
yarn add customize-cra react-app-rewired --D
  • 然后,转到package.json,将您的scripts更改为以下步骤(这一步骤至关重要,但在customize-cra的文档中没有明确提到):
代码语言:javascript
复制
  "scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
  },
  • 转到项目的根目录,创建一个名为config-overrides.js的文件,其内容如下(假设您使用的是Preact X):
代码语言:javascript
复制
const { override, addWebpackAlias } = require('customize-cra');

module.exports = override(
  addWebpackAlias({
    'react': 'preact/compat',
    'react-dom': 'preact/compat'
  })
);
  • 运行yarn start..。还有沃拉!
票数 8
EN

Stack Overflow用户

发布于 2022-02-13 20:26:32

或者,您可以让它与craco一起工作。

代码语言:javascript
复制
// craco.config.js
module.exports = {
  webpack: {
    alias: {
      "react": "preact/compat",
      "react-dom": "preact/compat"
    }
  }
}

注意:添加react**preact**!**后,不要卸载 ** @types/react**,或** @types/react-dom

react仍然是react-scripts运行craco start和朋友所必需的。

您的IDE仍然需要@types/*来提供类型建议。

注:捆绑分析器可能还会报告说你用的是React!

确保再次检查您的输出目录的实际构建大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58102009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档