Ich versuche, eine Anwendung zu Firebase zu wechseln und das Backend zu Firebase Cloud Functions zu übertragen.
Diese Anwendung verwendet ein privates Paket ( @org/name
) als Abhängigkeit.
Ich habe verschiedene Lösungen ausprobiert, aber keine scheint zu funktionieren:
NPM_TOKEN
env: nicht möglich, da Firebase-Beschränkungen auf die niedrigere Konfiguration beschränkt sind npm install
das Modul im Funktionsverzeichnis .npmrc
-Datei im Funktionsverzeichnis mit dem YARN- und NPM-Authentifizierungs-Token Die Bereitstellung wird immer abgelehnt mit:
Deploy Error: Build failed: Module @org/name not found in npm registry
Werden private Pakete auf Firebase unterstützt?
Wenn Sie Pakete hinzufügen möchten, die nicht öffentlich über npm verfügbar sind, müssen Sie sie selbst verpacken und in Ihren Funktionsordner aufnehmen. Der gesamte Funktionsordner wird beim Deployment hochgeladen, so dass Sie in der Lage sein sollten, Dinge wie lokal auszuführen.
Es gibt derzeit keinen praktischen Weg, dies zu tun.
Es scheint mir, dass GCF den npm-Client nicht benutzt, um von der npm-Registrierung zu holen und ihn stattdessen direkt zu holen. Dies verhindert die Verwendung der standardmäßigen .npmrc
-Datei oder einer anderen Methode, die der npm-Client kennt.
Sie müssen Ihr Paket lokal packen und installieren und es im Quellcode festschreiben:
%Vor% Dadurch wird der lokale Tarball zu Ihrem package.json
hinzugefügt und die Google Cloud-Funktionen können diesen verwenden.
Ich wünschte wirklich, sie würden .npmrc
aus dem Projekt-Root-Pfad lesen oder alternativ könnten wir ihnen eine TOKEN als env-Variable übergeben.
Es gibt ein offenes Problem: Ссылка
Google Cloud Functions unterstützt jetzt private NPM-Pakete.
Um ein privates npm-Modul zu verwenden, müssen Sie Anmeldeinformationen angeben (Auth - Token) für die npm - Registrierung in einer .npmrc - Datei in der Verzeichnis der Funktion. Sie können einfach die .npmrc-Datei kopieren, die das war erstellt in Ihrem Home-Verzeichnis, wenn Sie sich mit dem npm in npm eingeloggt haben Login-Befehl.
Fügen Sie die .npmrc-Datei nicht ein, wenn Sie nicht private verwenden Repositories, da dies die Bereitstellungszeit für Ihre Funktionen.
Quelle: Ссылка
In Bezug auf Google Issue Tracker wurde dies behoben. Weitere Informationen finden Sie in der Dokumentation unter Google Cloud Platform .
Verwenden von privaten Modulen
Um ein privates npm-Modul zu verwenden, müssen Sie die Anmeldeinformationen (auth token) für die npm-Registrierung in einer .npmrc
-Datei angeben, die sich im Verzeichnis der Funktion befindet. Sie können einfach die Datei .npmrc
kopieren, die in Ihrem Home-Verzeichnis erstellt wurde, als Sie sich mit dem Befehl npm login in npm eingeloggt haben.
Fügen Sie die .npmrc
-Datei nicht ein, wenn Sie keine privaten Repositories verwenden, da dies die Bereitstellungszeit für Ihre Funktionen verlängern kann.
Wenn das Problem weiterhin besteht, melden Sie sich bitte unter Google Issue Tracker erneut, um sie zu prüfen.
Tags und Links firebase node.js npm google-cloud-functions