최신 React 라이브러리를 만들려면 빌드 도구, 개발 경험 및 출력 최적화를 신중하게 고려해야 합니다. 이 가이드는 뛰어난 성능, 안정성 및 개발자 경험을 제공하는 강력한 조합인 TypeScript, SWC 및 Rollup을 사용하여 전문적인 React 라이브러리 스타터를 구축하는 과정을 안내합니다.
정적 유형 검사: 런타임이 아닌 개발 중에 오류를 포착
향상된 IDE 지원: 향상된 자동 완성, 리팩터링 및 코드 탐색
자체 문서화 코드: 유형은 살아있는 문서 역할을 합니다
개선된 유지 관리: 대규모 코드베이스를 더욱 쉽게 관리할 수 있습니다
커뮤니티 성장: 인기 있는 라이브러리에 대한 광범위한 유형 정의
mkdir react-library cd react-library npm init -y # Create essential directories mkdir src
# Core dependencies npm install react react-dom --save-peer # Development dependencies npm install --save-dev typescript @types/react @types/react-dom \ @swc/core @swc/helpers \ rollup @rollup/plugin-swc @rollup/plugin-node-resolve \ @rollup/plugin-commonjs rollup-plugin-peer-deps-external
tsconfig.json 만들기:
{ "compilerOptions": { "target": "ES2018", "module": "ESNext", "lib": ["DOM", "DOM.Iterable", "ESNext"], "declaration": true, "declarationDir": "dist/types", "emitDeclarationOnly": true, "jsx": "react-jsx", "strict": true, "moduleResolution": "node", "allowSyntheticDefaultImports": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "resolveJsonModule": true, "isolatedModules": true, "noUnusedLocals": true, "noUnusedParameters": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true }, "include": ["src"], "exclude": ["node_modules", "dist"] }
rollup.config.js 만들기:
import resolve from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import { swc, defineRollupSwcOption } from '@rollup/plugin-swc'; import peerDepsExternal from 'rollup-plugin-peer-deps-external'; import terser from '@rollup/plugin-terser'; const packageJson = require('./package.json'); const swcConfig = defineRollupSwcOption({ jsc: { parser: { syntax: 'typescript', tsx: true, }, transform: { react: { runtime: 'automatic', development: false, refresh: false, }, }, target: 'es2018', }, minify: false, }); export default [ // ESM build { input: 'src/index.tsx', output: [ { file: packageJson.module, format: 'esm', sourcemap: true, }, ], plugins: [ peerDepsExternal(), resolve({ extensions: ['.ts', '.tsx', '.js', '.jsx'], }), commonjs(), swc(swcConfig), terser(), ], external: ['react', 'react-dom'], }, // CommonJS build { input: 'src/index.tsx', output: [ { file: packageJson.main, format: 'cjs', sourcemap: true, exports: 'auto', }, ], plugins: [ peerDepsExternal(), resolve({ extensions: ['.ts', '.tsx', '.js', '.jsx'], }), commonjs(), swc(swcConfig), terser(), ], external: ['react', 'react-dom'], }, ];
package.json 업데이트:
{ "name": "your-library-name", "version": "1.0.0", "main": "dist/cjs/index.js", "module": "dist/esm/index.js", "types": "dist/types/index.d.ts", "files": [ "dist" ], "sideEffects": false, "scripts": { "build": "rollup -c", "types": "tsc", "prepare": "npm run types && npm run build", "lint": "eslint ." }, "peerDependencies": { "react": ">=17.0.0 <19.0.0", "react-dom": ">=17.0.0 <19.0.0" }, }
src/index.tsx 만들기:
mkdir react-library cd react-library npm init -y # Create essential directories mkdir src
예제를 제공하고 저장소 자체에서 코드 변경 사항을 테스트하기 위해 vite 앱을 설정합니다. 동화책으로도 가능합니다.
# Core dependencies npm install react react-dom --save-peer # Development dependencies npm install --save-dev typescript @types/react @types/react-dom \ @swc/core @swc/helpers \ rollup @rollup/plugin-swc @rollup/plugin-node-resolve \ @rollup/plugin-commonjs rollup-plugin-peer-deps-external
예제 package.json의 종속성 섹션에 패키지를 추가하세요
{ "compilerOptions": { "target": "ES2018", "module": "ESNext", "lib": ["DOM", "DOM.Iterable", "ESNext"], "declaration": true, "declarationDir": "dist/types", "emitDeclarationOnly": true, "jsx": "react-jsx", "strict": true, "moduleResolution": "node", "allowSyntheticDefaultImports": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "resolveJsonModule": true, "isolatedModules": true, "noUnusedLocals": true, "noUnusedParameters": true, "noImplicitReturns": true, "noFallthroughCasesInSwitch": true }, "include": ["src"], "exclude": ["node_modules", "dist"] }
구성요소를 가져와 예제 프로젝트에서 테스트해 보세요.
이제 React 라이브러리를 게시할 준비가 되었습니다! ?
즉시 사용 가능한 설정을 살펴보고 싶다면 여기에서 전체 시작 템플릿을 확인하세요: https://github.com/Abhirup-99/react-library-starter-template. 이 템플릿에는 지금까지 다룬 모든 내용이 포함되어 있으며 최소한의 설정으로 React 라이브러리 개발을 시작하는 데 도움이 되도록 설계되었습니다.
즐거운 코딩하세요!
위 내용은 최신 React 라이브러리 스타터 구축: 종합 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!