Pustaka Dikongsi & Pakej Dalaman
Cipta pustaka antara muka dan utiliti yang dikongsi serta importnya merentas aplikasi dengan alias laluan TypeScript.
Pustaka Dikongsi & Pakej Dalaman ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Mengapa Pustaka Dikongsi?
Daripada menduplikasi komponen, cangkuk dan utiliti merentasi beberapa aplikasi, ekstrak semuanya ke dalam projek pustaka dikongsi yang boleh digunakan oleh mana-mana aplikasi dalam repositori tunggal.
Menjana Pustaka
Gunakan penjana Nx untuk mencipta projek pustaka bertip dan boleh dibina.
# UI component library:
npx nx generate @nx/react:library ui --directory=libs/ui --importPath=@myorg/ui
# Utility library:
npx nx generate @nx/js:library utils --directory=libs/utils --importPath=@myorg/utils
# Data access library (hooks, API calls):
npx nx generate @nx/react:library data-access --importPath=@myorg/data-accessAPI Awam Pustaka
Eksportkan segala-galanya daripada satu index.ts (API awam). Pengguna hanya patut mengimport daripada @myorg/ui, bukannya daripada laluan dalaman yang terlalu mendalam.
// libs/ui/src/index.ts
export { Button } from './lib/Button';
export { Card } from './lib/Card';
export { Input } from './lib/Input';
export type { ButtonProps } from './lib/Button';
// Consumer in apps/web:
import { Button, Card } from '@myorg/ui';
// NOT: import { Button } from '@myorg/ui/src/lib/Button'; // internal pathJenis Pustaka: boleh diterbitkan berbanding boleh dibina
Boleh dibina pustaka dikompil secara berperingkat untuk binaan repositori tunggal yang lebih pantas. Pustaka boleh diterbitkan juga menjana pakej yang serasi dengan npm untuk digunakan oleh pihak luar.
# Buildable (monorepo internal use only):
npx nx generate @nx/react:library ui --buildable
# Publishable (for npm too):
npx nx generate @nx/react:library ui --publishable --importPath=@myorg/uiPenguatkuasaan Sempadan Modul
Gunakan peraturan ESLint @nx/enforce-module-boundaries untuk menghalang kebergantungan bulat dan mengehadkan projek yang boleh mengimport satu sama lain.
// nx.json or .eslintrc
"depConstraints": [
// Apps can only import from libs:
{ "sourceTag": "type:app", "onlyDependOnLibsWithTags": ["type:lib"] },
// Feature libs can't import other feature libs (via shared libs only):
{ "sourceTag": "type:feature", "notDependOnLibsWithTags": ["type:feature"] }
]Storybook untuk Pustaka Dikongsi
Jalankan Storybook pada pustaka UI untuk mendokumentasikan komponen secara berasingan, tanpa bergantung pada mana-mana aplikasi.
# Generate Storybook config for the ui lib:
npx nx generate @nx/storybook:configuration ui
# Run Storybook:
npx nx storybook uiMenguji Pustaka
Setiap pustaka mempunyai sasaran ujian sendiri. Jalankan ujian untuk pustaka itu dan semua aplikasi yang terjejas apabila pustaka berubah.
# Test specific library:
npx nx test ui
# Test all affected by a change:
npx nx affected --target=testPengurusan Versi dalam Repositori Tunggal
Dalam repositori tunggal, semua pakej berkongsi satu package.json dan versi. Bagi pustaka yang boleh diterbitkan, gunakan alat seperti @jscutlery/semver atau Changesets untuk mengurus pemversian secara berasingan.
Memindahkan Kod Sedia Ada ke dalam Pustaka
Pindahkan kod dikongsi ke pustaka secara beransur-ansur: cipta pustaka, pindahkan fail, kemas kini import, dan biarkan alias laluan TypeScript mengendalikan selebihnya.
# Move a component:
# 1. Copy src/components/Button.tsx → libs/ui/src/lib/Button.tsx
# 2. Export from libs/ui/src/index.ts
# 3. Update imports across apps from relative paths to '@myorg/ui'
# 4. Delete the original fileDokumentasi dengan Compodoc atau Dokumentasi Storybook
Gunakan teg autodocs Storybook atau Compodoc untuk menjana dokumentasi API daripada jenis TypeScript dan komen JSDoc dalam fail pustaka.
Semakan Pantas
Apakah yang patut menjadi titik masuk tunggal untuk pengguna yang mengimport daripada pustaka Nx dikongsi?
Ulang Kaji
Jana pustaka dengan nx generate, eksportkan segala-galanya daripada satu index.ts, dan kuatkuasakan sempadan modul dengan peraturan ESLint. Gunakan pustaka boleh dibina untuk binaan berperingkat yang lebih pantas dan pustaka boleh diterbitkan apabila anda perlu menerbitkannya ke npm. Jalankan Storybook pada pustaka UI untuk dokumentasi secara berasingan.
Pelajari React dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 88
- Pelajaran
- 324
Soalan Lazim
Adakah pelajaran “Pustaka Dikongsi & Pakej Dalaman” percuma?
Ya — teks penuh “Pustaka Dikongsi & Pakej Dalaman” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pustaka Dikongsi & Pakej Dalaman”?
Cipta pustaka antara muka dan utiliti yang dikongsi serta importnya merentas aplikasi dengan alias laluan TypeScript. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan React Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Pustaka Dikongsi & Pakej Dalaman” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?
Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mencipta Monorepo Nx dengan Aplikasi React
- Pustaka Dikongsi & Pakej Dalaman
- Perintah Nx Affected & Caching
- Penjana Kod & Automasi Ruang Kerja