根据 Preact 文档,要将 React 应用程序转换为 Preact,您必须为 webpack 设置别名:
{
"resolve": {
"alias": {
"react": "preact-compat",
"react-dom": "preact-compat"
}
}
}
你怎么能做到这一点,create-react-app
因为它隐藏了 react-scripts 依赖下的 webpack?
谢谢!
根据 Preact 文档,要将 React 应用程序转换为 Preact,您必须为 webpack 设置别名:
{
"resolve": {
"alias": {
"react": "preact-compat",
"react-dom": "preact-compat"
}
}
}
你怎么能做到这一点,create-react-app
因为它隐藏了 react-scripts 依赖下的 webpack?
谢谢!
我认为最优雅的解决方案是使用customize-cra
. 这样你就可以避免弹出或维护一个单独的create-react-app
.
customize-cra
:yarn add customize-cra react-app-rewired --D
package.json
,将您scripts
的更改为以下内容(此步骤至关重要,但在customize-cra
的文档中未明确提及): "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):const { override, addWebpackAlias } = require('customize-cra');
module.exports = override(
addWebpackAlias({
'react': 'preact/compat',
'react-dom': 'preact/compat'
})
);
yarn start
……瞧!有Preact CLI,让您没有任何module捆扎机创建preact应用。这是为 Preact 应用程序创建启动器的推荐工具。
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 的模板。最新版本(截至 21 年 7 月 25 日)是 Preact X(Preact 版本 10.x)。默认模板使用 Preact X。
如果你想用来create-react-app
制作 Preact 应用程序,你可以使用这个解决方法(记录在这里):
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
. 如果需要,我会再试一次并提供更多详细信息。