根据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
可以使用
yarn
和add
进行安装,并使用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应用中时遇到问题。我将再尝试一次,并在需要时尝试提供更多详细信息。