Publier sur NPM
Vous développez un nouveau composant Astro ? Publiez-le sur NPM !
Publier un composant Astro est une excellente façon de rĂ©utiliser votre travail existant dans vos projets et de le partager avec la communautĂ© dâAstro Ă grande Ă©chelle. Les composants Astro peuvent ĂȘtre publiĂ©s directement et installĂ©s depuis NPM, comme tout autre Paquet JavaScript.
Vous cherchez de lâinspiration ? Regardez quelques-uns de nos thĂšmes et composants prĂ©fĂ©rĂ©s issus la communautĂ© dâAstro. Vous pouvez aussi rechercher sur NPM pour voir lâensemble du catalogue public.
DĂ©marrage rapide
Section titled Démarrage rapidePour commencer à développer rapidement votre composant, nous avons un modÚle déjà configuré pour vous.
CrĂ©ation dâun Paquet
Section titled CrĂ©ation dâun PaquetAvant de se lancer, avoir une comprĂ©hension basique des sujets suivants vous sera dâune grande aide :
Pour crĂ©er un nouveau Paquet, nous vous recommandons fortement de configurer votre environnement de dĂ©veloppement pour utiliser les âWorkspacesâ (ou espaces de travail) dans votre projet. Cela vous permettra de dĂ©velopper votre composant avec une copie fonctionnelle dâAstro.
Directorymy-new-component-directory/
Directorydemo/
- ⊠pour les tests et les démonstrations
- package.json
Directorypackages/
Directorymy-component/
- index.js
- package.json
- ⊠fichiers additionnels utilisés par le Paquet
Dans cet exemple nommé my-project
, nous créons un projet avec un seul Paquet, nommé my-component
, et un répertoire demo/
pour les tests et les démonstrations du composant.
Tout cela est configuré dans le fichier package.json
situé dans le répertoire racine du projet.
Dans cet exemple, plusieurs Paquets peuvent ĂȘtre dĂ©veloppĂ©s ensemble depuis le rĂ©pertoire packages
. Ces Paquets peuvent Ă©galement ĂȘtre rĂ©fĂ©rencĂ©s depuis demo
, oĂč vous pouvez installer une copie fonctionnelle dâAstro.
Il y a deux fichiers initiaux qui constituent votre Paquet individuel : package.json
et index.js
.
package.json
Section titled package.jsonLe fichier package.json
dans le répertoire du Paquet contient toutes les informations relatives à votre projet, y compris sa description, ses dépendances, et toutes autres métadonnées du Paquet.
description
Section titled descriptionUne courte description de votre composant pour aider les autres Ă comprendre ce quâil fait.
Le format de module utilisé par Node.js et Astro pour interpréter vos fichiers index.js
.
Nous recommandons dâutiliser "type": "module"
pour que votre fichier index.js
puisse ĂȘtre utilisĂ© comme point dâentrĂ©e avec import
et export
.
package.json#homepage
Section titled package.json#homepageLâurl de la page dâaccueil de votre projet.
Câest une bonne façon de diriger les utilisateurs vers une dĂ©monstration, une documentation ou la page dâaccueil de votre projet.
package.json#exports
Section titled package.json#exportsLes points dâentrĂ©e dâun Paquet lorsquâil est importĂ© par nom.
Dans cet exemple, lâimportation de my-component
utilise index.js
, tandis que lâimportation de my-component/astro
ou my-component/react
utilise MyAstroComponent.astro
ou MyReactComponent.jsx
, respectivement.
files
Section titled filesCâest une optimisation optionnelle pour exclure les fichiers inutiles du paquet fourni aux utilisateurs via NPM. Notez que seuls les fichiers listĂ©s ici seront inclus dans votre Paquet, donc si vous ajoutez ou modifiez des fichiers nĂ©cessaires Ă votre Paquet pour quâil fonctionne, vous devez mettre Ă jour cette liste en consĂ©quence.
keywords
Section titled keywordsUne liste de mots-clés pertinents à votre composant qui sont utilisés pour aider les autres à trouver votre composant sur NPM et dans tous les autres catalogues de recherche.
Nous recommandons dâajouter astro-component
comme mot-clĂ© spĂ©cial pour maximiser sa dĂ©couverte dans lâĂ©cosystĂšme Astro.
Les mots-clĂ©s sont Ă©galement utilisĂ©s par notre bibliothĂšque dâintĂ©gration! Voir ci-dessous pour une liste complĂšte des mots-clĂ©s que nous utilisons dans NPM.
index.js
Section titled index.jsLe point dâentrĂ©e principal du Paquet utilisĂ© lorsque votre Paquet est importĂ©.
Cela vous permet de mettre plusieurs composants ensemble dans une seule interface.
Exemple : Utilisation des importations nommées
Section titled Exemple : Utilisation des importations nomméesExemple : Utilisation des importations de Namespace (Espace de Noms)
Section titled Exemple : Utilisation des importations de Namespace (Espace de Noms)Exemple : Utilisation des importations individuelles
Section titled Exemple : Utilisation des importations individuellesDĂ©veloppement de votre Paquet
Section titled DĂ©veloppement de votre PaquetAstro nâa pas de mode Paquet pour le dĂ©veloppement. Au lieu de cela, vous devriez utiliser un projet de dĂ©monstration pour dĂ©velopper et tester votre Paquet dans votre projet. Cela peut ĂȘtre un site web privĂ© uniquement utilisĂ© pour le dĂ©veloppement, ou un site de dĂ©monstration/documentation pour votre Paquet.
Si vous voulez extraire des composants dâun projet existant, vous pouvez aussi continuer Ă utiliser ce projet pour dĂ©velopper vos composants maintenant extraits.
Tester votre composant
Section titled Tester votre composantAstro ne livre actuellement pas de suites de tests. Câest quelque chose que nous aimerions aborder. (Si vous ĂȘtes intĂ©ressé·e·s pour aider, rejoignez nous dans notre Discord !)
En attendant, nos recommandations actuelles pour les tests sont :
- Ajoutez un répertoire de test nommé
fixtures
à votre répertoiredemo/src/pages
. - Ajoutez une nouvelle page pour chaque test que vous souhaitez exécuter.
- Chaque page devrait inclure un usage de composant différent que vous souhaitez tester.
- Exécutez
astro build
pour construire vos fixtures, puis comparez le résultat dedist/__fixtures__/
Ă ce que vous attendiez.
Directorymy-project/demo/src/pages/__fixtures__/
- test-name-01.astro
- test-name-02.astro
- test-name-03.astro
Publier votre composant
Section titled Publier votre composantUne fois que votre Paquet est prĂȘt, vous pouvez le publier sur NPM !
Pour publier un Paquet sur NPM, utilisez la commande npm publish
. Si cela Ă©choue, assurez-vous que vous vous ĂȘtes connectĂ© via npm login
et que votre package.json
est correct. Si cela réussit, vous avez fini !
Notez que il nây avait pas de Ă©tape build
pour les Paquets Astro. Tous les types de fichiers que Astro supporte peuvent ĂȘtre publiĂ©s directement sans Ă©tape de construction, car nous savons que Astro supporte dĂ©jĂ ces types de fichiers. Cela inclut tous les fichiers avec des extensions comme .astro
, .ts
, .jsx
, et .css
.
Si vous avez besoin dâun autre type de fichier qui nâest pas supportĂ© nativement par Astro, vous pouvez ajouter une Ă©tape de Build Ă votre Paquet. Nous vous laissons cet exercice avancĂ©.
BibliothĂšque dâintĂ©grations
Section titled BibliothĂšque dâintĂ©grationsPartagez votre travail en ajoutant votre intĂ©gration Ă notre bibliothĂšque dâintĂ©grations !
Données du fichier package.json
Section titled Données du fichier package.jsonLa bibliothÚque est mise à jour tous les jours automatiquement; chaque Paquet publié sur NPM avec le mot-clé astro-component
est extrait.
La bibliothĂšque dâintĂ©gration lit les donnĂ©es name
, description
, repository
, et homepage
de votre package.json
.
Les avatars sont une bonne façon de mettre en Ă©vidence votre marque dans la bibliothĂšque ! Une fois que votre Paquet est publiĂ©, vous pouvez crĂ©er une Issue GitHub avec votre avatar attachĂ© et nous lâajouterons Ă la liste.
Collections
Section titled CollectionsEn plus du mot-clé obligatoire astro-component
ou withastro
, des mots-clĂ©s spĂ©ciaux sont Ă©galement utilisĂ©s pour organiser automatiquement les Paquets. Inclure nâimporte quel mots-clĂ©s ci-dessous ajoutera votre intĂ©gration Ă notre bibliothĂšque dâintĂ©grations.
Collection | Mots-clés |
---|---|
Accessibilité | a11y , accessibility |
Adapteurs | astro-adapter |
Analyse de données | analytics |
CSS + UI | css , ui , icon , icons , renderer |
Frameworks | renderer |
Performance + SEO | performance , perf , seo , optimization |
Partagez
Section titled PartagezNous vous encourageons à partager votre travail, nous apprécions vraiment de voir ce que nos talentueux Astronautes créent. Partagez ce que vous créez avec nous dans notre Discord ou mentionnez @astrodotbuild dans un Tweet !