React
基于 Farm 创建一个 React 项目。
Farm 提供两种方案来支持创建 React 项目:
- 使用
create-farm脚手架创建脚手架项目 - 你可以根据当前文档手动创建一个
React项目
创建 React 项目
sh
npm create farm@latestsh
yarn create farm@latestsh
pnpm create farm@latestsh
bun create farm@latest在 Select Framework 中选择 React 模版
Farm 需要通过注册 @farmfe/plugin-react 插件来对 React 项目进行支持。
farm.config.ts
import { defineConfig } from '@farmfe/core';
import react from '@farmfe/plugin-react';
export default defineConfig({
plugins: [react()],
});
和 JS 插件一样,导入 @farmfe/plugin-react 并以工厂函数的形式调用即可注册。
集成 emotion
你可以通过注册 @swc/plugin-emotion 插件来对 emotion 进行支持。
farm.config.ts
import { defineConfig } from '@farmfe/core';
import react from '@farmfe/plugin-react';
export default defineConfig({
compilation: {
script: {
plugins: [
{
name: '@swc/plugin-emotion',
options: {},
filters: {
moduleTypes: ['tsx'],
},
},
],
},
},
plugins: [react({ runtime: "automatic", importSource: "@emotion/react" })],
});
src/index.tsx
import { css } from '@emotion/react';
const color = 'white';
export function Main() {
return (
<div
onClick={() => setCount((c) => c + 1)}
css={css`
padding: 32px;
background-color: hotpink;
font-size: 24px;
border-radius: 4px;
&:hover {
color: ${color};
}
`}
>
{a}: {count}
</div>
);
}
集成 svgr
SVGR 是一个用于将 SVG 转换为 React 组件的工具,Farm 提供了 Js 插件来支持 SVGR。
farm.config.ts
import { defineConfig } from '@farmfe/core';
import react from '@farmfe/plugin-react';
import farmJsPluginSvgr from '@farmfe/js-plugin-svgr';
export default defineConfig(async (env) => {
return {
plugins: [
react({
refresh: process.env.NODE_ENV === 'development',
development: process.env.NODE_ENV === 'development'
}),
farmJsPluginSvgr()
]
};
});
开发环境时运行
sh
npm run devsh
yarn run devsh
pnpm run devsh
bun run dev在生产环境下进行打包
sh
npm run buildsh
yarn run buildsh
pnpm run buildsh
bun run build预览生产环境打包之后构建的产物
sh
npm run previewsh
yarn run previewsh
pnpm run previewsh
bun run preview如若想查看示例详情: React 示例
Farm