Eine Bibliothek ist ein Scriptprojekt, dessen Funktionen in anderen Scripts wiederverwendet werden können.
Zugriff auf eine Bibliothek erhalten
Wenn Sie eine Bibliothek in Ihr Projekt einfügen möchten, benötigen Sie mindestens Zugriff auf Ansichtsebene. Wenn Sie nicht der Autor der Bibliothek sind, die Sie einbinden möchten, wenden Sie sich an den Autor und fordern Sie Zugriff an.
Sie benötigen die Script-ID der Bibliothek, die Sie einfügen möchten. Wenn Sie Zugriff auf die Bibliothek haben, finden Sie die Script-ID auf der Seite Projekteinstellungen
.Bibliothek zu einem Skriptprojekt hinzufügen
- Klicken Sie links im Apps Script-Editor neben „Bibliotheken“ auf „Bibliothek hinzufügen“ .
- Fügen Sie im Feld „Script-ID“ die Script-ID der Bibliothek ein.
- Klicken Sie auf Suchen.
- Klicken Sie auf das Drop-down-Menü Version und wählen Sie die Version der Bibliothek aus, die Sie verwenden möchten.
- Prüfen Sie, ob der Standardname „Identifier“ der Name ist, den Sie für diese Bibliothek verwenden möchten. Dies ist der Name, den Ihr Skript verwendet, um auf die Bibliothek zu verweisen. Wenn Sie sie beispielsweise auf
Test
setzen, können Sie eine Methode dieser Bibliothek so aufrufen:Test.libraryMethod()
. - Klicken Sie auf Hinzufügen.
Bibliothek verwenden
Verwenden Sie die enthaltene Bibliothek wie einen Standarddienst. Wenn Test
beispielsweise der Bezeichner für Ihre Bibliothek ist, geben Sie Test
gefolgt von einem Punkt ein, um die Liste der Methoden in der Bibliothek aufzurufen.
So öffnen Sie die Referenzdokumentation für eine enthaltene Bibliothek:
Klicken Sie links im Skripteditor neben dem Namen der Bibliothek auf das Dreipunkt-Menü
> In neuem Tab öffnen.Bibliothek entfernen
Klicken Sie links im Scripteditor neben dem Namen der Bibliothek auf das Dreipunkt-Menü
> Entfernen > Bibliothek entfernen.Bibliothek aktualisieren
Sie können die Version der Bibliothek ändern oder ihre Kennung aktualisieren.
- Klicken Sie links im Editor unter „Bibliotheken“ auf den Namen der Bibliothek.
- Nehmen Sie die Änderungen vor und klicken Sie auf Speichern.
Bibliothek erstellen und teilen
So verwenden und teilen Sie Ihr Skriptprojekt als Bibliothek:
- Erstellen Sie ein versioniertes Deployment Ihres Skripts.
- Geben Sie allen potenziellen Nutzern der Bibliothek mindestens Zugriff auf Datenansichtsebene.
- Geben Sie diesen Nutzern die Script-ID, die Sie auf der Seite Projekteinstellungen finden.
Best Practices
Hier sind einige Richtlinien, die Sie beim Schreiben einer Bibliothek beachten sollten:
- Wählen Sie einen aussagekräftigen Namen für Ihr Projekt aus, da er als Standard-ID verwendet wird, wenn Ihre Bibliothek von anderen eingebunden wird.
- Wenn Sie möchten, dass eine oder mehrere Methoden Ihres Skripts für Ihre Bibliotheksnutzer nicht sichtbar (und nicht nutzbar) sind, können Sie den Namen der Methode mit einem Unterstrich beenden. Beispiel:
myPrivateMethod_()
. - Bibliotheksnutzer können nur auf aufzählbare globale Eigenschaften zugreifen. Dazu gehören Funktionsdeklarationen, Variablen, die außerhalb einer Funktion mit
var
erstellt wurden, und Eigenschaften, die explizit für das globale Objekt festgelegt wurden. Wenn Sie beispielsweiseObject.defineProperty()
mitenumerable
auffalse
festlegen, erstellen Sie ein Symbol, das Sie in Ihrer Bibliothek verwenden können. Ihre Nutzer haben jedoch keinen Zugriff auf dieses Symbol. Wenn Sie möchten, dass Ihre Bibliotheksnutzer die automatische Vervollständigung des Scripteditors und die automatisch generierte Dokumentation verwenden können, müssen Sie für alle Ihre Funktionen eine Dokumentation im JSDoc-Stil haben. Beispiel:
/** * Raises a number to the given power, and returns the result. * * @param {number} base the number we're raising to a power * @param {number} exp the exponent we're raising the base to * @return {number} the result of the exponential calculation */ function power(base, exp) { ... }
Ressourcenbereich
Wenn Sie mit Bibliotheken arbeiten, gibt es zwei Arten von Ressourcen: freigegebene und nicht freigegebene. Eine gemeinsam genutzte Ressource bedeutet, dass sowohl die Bibliothek als auch das einschließende Skript einen integrierten Zugriff auf dieselbe Instanz der Ressource haben. Das folgende Diagramm zeigt eine freigegebene Ressource am Beispiel von Nutzer-Properties:
Bei einer nicht freigegebenen Ressource haben sowohl die Bibliothek als auch das einschließende Skript nur integrierten Zugriff auf ihre Instanz der Ressource. Eine Bibliothek kann jedoch Zugriff auf ihre nicht freigegebenen Ressourcen gewähren, indem sie explizite Funktionen enthält, die auf diese Ressourcen zugreifen. Hier sehen Sie ein Beispiel für eine Funktion, die Sie in Ihre Bibliothek aufnehmen würden, um ihre Skripteigenschaften verfügbar zu machen:
function getLibraryProperty(key) {
const scriptProperties = PropertiesService.getScriptProperties();
return scriptProperties.getProperty(key);
}
Das folgende Diagramm zeigt eine nicht freigegebene Ressource am Beispiel von Skripteigenschaften:
In dieser Tabelle sind die freigegebenen und nicht freigegebenen Ressourcen aufgeführt:
Ressource | Freigegeben* | Nicht geteilt** | Hinweise |
---|---|---|---|
Sperren | Dieselbe Instanz ist für alle sichtbar, auch für Skripts, wenn sie in der Bibliothek erstellt wird. | ||
Skripteigenschaften | Dieselbe Instanz ist für alle sichtbar, auch für Skripts, wenn sie in der Bibliothek erstellt wird. | ||
Cache | Dieselbe Instanz ist für alle sichtbar, auch für Skripts, wenn sie in der Bibliothek erstellt wird. | ||
Trigger | Einfache Trigger, die in der Bibliothek erstellt wurden, werden nicht durch das einschließende Skript ausgelöst. | ||
ScriptApp | |||
UiApp |
|
||
Nutzereigenschaften | |||
Logger und Ausführungsprotokoll | |||
Sites, Tabellen und andere Container | Ein Aufruf von getActive() gibt den Container des einschließenden Skripts zurück. |
||
MailApp und GmailApp | |||
* Das bedeutet, dass die Bibliothek keine eigene Instanz des Features/der Ressource hat, sondern die vom aufrufenden Skript erstellte Instanz verwendet.
** Das bedeutet, dass die Bibliothek eine eigene Instanz der Ressource/Funktion hat und dass alle Skripts, die die Bibliothek verwenden, auf diese Instanz zugreifen und sie gemeinsam nutzen. |
Bibliothek testen
Verwenden Sie die Head-Bereitstellung, um Ihre Bibliothek zu testen. Jeder, der Zugriff auf das Skript auf Editorebene hat, kann die Head-Bereitstellung verwenden.
Bibliothek debuggen
Wenn Sie den Debugger in einem Projekt verwenden, das eine Bibliothek enthält, können Sie in eine Funktion der enthaltenen Bibliothek eintreten. Der Code wird im Debugger im Nur-Lese-Modus und in der richtigen Version angezeigt.