Construction et utilisation de l'entrepôt privé Flutter Pub

Construction d'un entrepôt privé Flutter Pub

le but

Poussez votre package / plugin dans le référentiel pub privé.

étape clé

Il y a deux étapes clés pour atteindre cet objectif:
premièrement, déployez le serveur pub_server;
deuxièmement, supprimez la vérification des autorisations google dans la commande pub publish.

méthode spécifique

1. Déployez pub_server

Téléchargez le code source pub_server selon la commande suivante, extrayez la bibliothèque dépendante et exécutez le programme.

git clone https://github.com/dart-archive/pub_server.git
...
cd pub_server/
...
pub get
...
dart example/example.dart -d /tmp/package-db

Étant donné que pub_server est écrit en langage Dart, le démarrage du service doit s'appuyer sur l'environnement Dart, veuillez donc vous assurer que l'environnement d'exécution Dart est correctement installé.

L'endroit où se trouve la dart example/example.dart -d /tmp/package-dbcommande, le /tmp/package-dbpackage du plugin de téléchargement et l'adresse peuvent être déterminés en fonction de leurs propres exigences.

Lorsque vous voyez ce qui suit dans le terminal, cela signifie que pub_server fonctionne normalement:

Listening on http://localhost:8080

To make the pub client use this repository configure your shell via:

    $ export PUB_HOSTED_URL=http://localhost:8080

Si vous souhaitez modifier le numéro de port 8080 ici, vous pouvez example/example.dartrechercher 8080 dans le fichier pour le modifier.

2. Supprimer la vérification des autorisations Google

Veuillez vous référer à https://blog.csdn.net/ameryzhu/article/details/101688994 pour le principe de suppression de la vérification des autorisations Google .

Les étapes d'exécution sont les suivantes:

1. Téléchargez le code modifié et mettez à jour les dépendances:

git clone https://github.com/ameryzhu/pub
cd pub
pub get

2. Compilez et générez un fichier d’instantané

dart --snapshot=my.pub.snapshot ~/pub/bin/pub.dart

Des articles sur Internet disent que la commande est exécutée dans le répertoire bin / lib. En fait, le répertoire d'exécution de la commande n'est pas important, il peut être exécuté n'importe où; l'important est dans la commande ~/pub/bin/pub.dart, car le fichier spécifié par le path contient la main()méthode.

Ainsi, lorsqu'une ../lib/pub.dart: Warning: Interpreting this as package URI, 'package:pub/pub.dart'.erreur comme celle-ci apparaît dans votre terminal , vous devez confirmer si le répertoire spécifié dans votre commande est correct.
Dans le code source pub, il y a des fichiers pub.dart à la fois dans le répertoire bin et dans le répertoire lib, mais seul le répertoire bin contient des main()méthodes.

Si je ne souhaite pas compiler et générer un instantané, puis-je utiliser l'instantané généré par quelqu'un d'autre? Lorsque vous utilisez le fichier d'instantané de thread, vous devez confirmer la version de fléchette de la contrepartie. Si la version de la contrepartie n'est pas cohérente avec la vôtre, exécuter la commande après avoir remplacé le fichier provoquera des erreurs associées.

3. Remplacez le fichier d'instantané ou modifiez la configuration

La pratique générale sur Internet consiste à my.pub.snapshotcopier le fichier généré à l'étape précédente dans le dart-sdk/bin/snapshotsrépertoire et à utiliser un outil d'édition de texte pour modifier le dart-sdk/binfichier pub dans le répertoire . En fait, l'approche ci-dessus peut simplement être l'habitude personnelle de l'auteur original. En fait, il suffit de nommer le fichier instantané à l'étape précédente et de remplacer le fichier avec le même nom dans le répertoire.pub.dart.snapshotmy.pub.snapshot
pub.dart.snapshotdart-sdk/bin/snapshots

Si vous avez installé Flutter directement, dart-sdk se trouve dans le flutter/bin/cacherépertoire.

3. Publier un pub

Création d'une pénalité de package flutter create --template=package test_packagepour
Remplissez ensuite pubspec.yamlla valeur de l'attribut et ajoutez l' publish_toattribut:

name: test_package
description: A new Flutter package project.
version: 0.0.1
author: test
homepage: http://gitlab.com/test
publish_to: http://localhost:8080

Où la publish_tovaleur est l'adresse du service privé de pub de l'entrepôt.

Ensuite, exécutez-le dans le répertoire racine du package pub publish, vous ne serez pas invité à effectuer une vérification Google pour le moment, et vous le verrez enfin Successfully uploaded package..

4. Utilisez pub

pubspec.yamlAjoutez une référence à pub dans le fichier projet :

dependencies:
  test_package:
    hosted:
      name: test_package
      url: http://localhost:8080
    version: ^0.0.1

Remarque, le nom est le nom du paquet, si rempli de mal, le service pub_server ne trouvera pas le paquet correspondant, vous verrez quelque chose comme ça dans le journal de pub_server terminal: 2021-04-01T18:06:30.456418 0:00:00.000277 GET [404] /api/packages/my-package.

Si une erreur se produit pendant l'utilisation, vous pouvez utiliser la flutter pub get -vcommande pour afficher le journal détaillé spécifique.

autre

Pub_server est uniquement un service de stockage de packages et ne possède pas de page de requête frontale comme pub.dev. En fait, lancez officiellement open source pub.dev, veuillez vous référer à https://github.com/dart-lang/pub-dev pour l' adresse . Donc, en théorie, vous pouvez également déployer vous-même un ensemble de pages de requête.

Je suppose que tu aimes

Origine blog.csdn.net/jhq1990/article/details/115380948
conseillé
Classement