JavaScript-Module und Bibliotheken von Drittanbietern
Optimieren Sie Ihre Codebasis mit JavaScript-Modulen, um zugehörigen Code zu gruppieren, oder fügen Sie Bibliotheken von Drittanbietern hinzu, und verwenden Sie ihren Code in Anwendungen wieder.
Übersicht
Ein Modul ist eine JavaScript-Datei, die zugehörigen Code enthält, der exportiert und in Anwendungen einer Instanz wiederverwendet wird. In bereichsbezogenen Anwendungen, die mit dem SDK von [ ServiceNow erstellt oder konvertiert werden, können Sie JavaScript-Module und Bibliotheken von Drittanbietern aus Visual Studio Codehinzufügen. Sie können TypeScript auch verwenden, um Module zu erstellen und in JavaScript zu kompilieren, bevor Sie Ihre Anwendung mit dem SDK erstellen.
In einem Modul identifizieren Sie Code für die Wiederverwendung mit Export -Anweisungen. Damit externe Module und Skripts auf den Modulcode zugreifen können, fügen Sie Einstiegspunkte im Exportfeld in der Datei „ package.json “ der Anwendung hinzu. Verwenden Sie dann Import- oder Require -Anweisungen, um den Code an anderer Stelle in Ihren Anwendungen wiederzuverwenden. Anwendungen müssen Abhängigkeiten von anderen Anwendungen oder npm-Bibliotheken (Node Package Manager) von Drittanbietern deklarieren, um ihren Modulcode zu verwenden.
Nachdem Sie Module hinzugefügt und die lokale Anwendung in einer Instanz bereitgestellt haben, werden die Module in der Tabelle „EcmaScript-Modul“ [sys_module] gespeichert. Wenn ein Modul in mehreren Anwendungen verwendet wird, verfügt es über mehrere Datensätze in der Tabelle „EcmaScript-Modul“ [sys_module].
Allgemeine Informationen zur Syntax zum Erstellen von JavaScript-Modulen finden Sie auf der Seite „ JavaScript -Module“ auf der MDN-Webdokument-Website. Informationen zur Verwendung von TypeScript in Ihrer Anwendung finden Sie unter Verwenden von TypeScript mit dem ServiceNow SDK.
Einschränkungen
- Globale Anwendungen und Anwendungsanpassungen werden nicht unterstützt.
- Eine Teilmenge der ECMAScript-Funktionen wird in Modulen gemäß Unterstützung der JavaScript-Engine-Funktionunterstützt.
- Node.js-APIs werden in -Modulen nicht unterstützt.
- Globale Variablen im Zusammenhang mit Web-APIs werden nicht unterstützt.
- import- und export- Anweisungen werden in Skripts wie Business Rules oder Skripteinbindungen nicht unterstützt. Sie werden nur in -Modulen unterstützt
- Bibliotheken von Drittanbietern, die Ihrer Anwendung hinzugefügt wurden, können ServiceNow APIs nicht aufrufen oder aufrufen.
- CommonJS-Module aus Bibliotheken von Drittanbietern werden nur unterstützt, wenn sie Exporte definieren. Subpfad-Importe werden bei CommonJS-Modulen nicht unterstützt. ECMAScript-Module aus Bibliotheken von Drittanbietern werden unterstützt.
- Globale Glide-APIs sind standardmäßig nicht in -Modulen verfügbar. Sie können aus dem Paket @servicenow/glide importiert werden.
- JavaScript-Module [sys_module] können nicht über die Plattform geändert werden. Sie müssen in Visual Studio Code geändert und mit dem SDK in der Instanz bereitgestellt werden.
Module werden exportiert
export { myFunction, myVariable };
Damit Skripts und Module in verschiedenen Anwendungen auf Code aus einem Modul zugreifen können, definieren Sie einen Einstiegspunkt in die Anwendung mit dem Export -Feld in der Datei „package.json “. Die folgenden Beispiele beziehen sich auf eine Anwendung mit dem Namen „Math“ für mathematische Funktionen.
| Methode | Beispiel |
|---|---|
Geben Sie einen Zeichenfolgenwert an, der auf ein Modul verweist. |
|
Verwenden Sie ein Objekt, wobei |
|
Exportieren Sie nur die Module add.js und subtract.js als Unterpfadexporte. |
|
Exportiert alle Dateien, einschließlich Unterverzeichnisse, aus einem angegebenen Pfad. |
|
Exportieren Sie nur Dateien eines bestimmten Dateityps aus einem angegebenen Pfad. |
|
Exportieren Sie Dateien eines bestimmten Dateityps, behalten Sie jedoch einen Ordner in einem Verzeichnis privat. |
|
Module werden importiert
Um den Modulcode zu importieren, den Sie wiederverwenden möchten, verwenden Sie Importanweisungen in anderen Modulen oder Require -Anweisungen in serverseitigen Skripts.
import { feature } from "path/to/module";
const { feature } = require("path/to/module");
{
"name": "math",
"version": "1.0.0",
"exports": {
"./functions/*.js": "./src/functions/*.js",
"./functions/private-functions/*": null
},
"imports": {
"#calc": "calculus",
"#derivative": "calculus/derivative"
},
"dependencies": {
"calculus": "1.0.0"
}
}#derive verwenden. Unterpfade können auch im Importfeld verwendet werden, um eine Kurzform für Abhängigkeiten zu verwenden, z. B. #calc.import { derivative } from '#derivative';
import * as calculus from '#calc';Hinzufügen von Abhängigkeiten
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"math": "1.0.0"
}
}