ホームページ > 記事 > ウェブフロントエンド > 最新の React ライブラリ スターターの構築: 包括的なガイド
最新の 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 中国語 Web サイトの他の関連記事を参照してください。