Modules JavaScript et bibliothèques tierces
Optimisez votre base de code à l’aide de modules JavaScript pour regrouper le code connexe ou ajouter des bibliothèques tierces et réutiliser leur code dans les applications.
Vue d'ensemble
Un module est un fichier JavaScript qui contient du code connexe qui est exporté et réutilisé entre les applications d’une instance. Dans les applications incluses dans le périmètre créées ou converties à l’aide du Kit de développement logiciel (SDK ServiceNow ), vous pouvez ajouter des modules JavaScript et des bibliothèques tierces à partir de Visual Studio Code. Vous pouvez également utiliser TypeScript pour créer des modules et les compiler en JavaScript avant de générer votre application avec le Kit de développement logiciel (SDK).
Dans un module, vous identifiez le code à réutiliser avec des instructions d’exportation . Pour que les modules et scripts externes accèdent au code du module, vous ajoutez des points d’entrée dans le champ d’exportation du fichier package.json de l’application. Ensuite, utilisez les instructions import or require pour réutiliser le code ailleurs dans vos applications. Les applications doivent déclarer les dépendances à d’autres applications ou à des bibliothèques Node Package Manager (npm) tierces pour utiliser leur code de module.
Après avoir ajouté des modules et déployé l’application locale sur une instance, ceux-ci sont stockés dans la table Module EcmaScript [sys_module]. Si un module est utilisé dans plusieurs applications, il possède plusieurs enregistrements dans la table du module EcmaScript [sys_module].
Pour des informations générales sur la syntaxe utilisée pour créer des modules JavaScript, consultez la page des modules JavaScript sur le site Web de MDN Web Docs. Pour utiliser TypeScript dans votre application, reportez-vous à la section Utilisation de TypeScript avec le Kit de développement logiciel (SDK)ServiceNow.
Limitations
- Les applications globales et les personnalisations d’application ne sont pas prises en charge.
- Un sous-ensemble de fonctionnalités ECMAScript est pris en charge dans les modules conformément à la norme Prise en charge des fonctionnalités du moteur JavaScript.
- Node.js Les API ne sont pas prises en charge dans les modules.
- Les variables globales associées aux API Web ne sont pas prises en charge.
- les instructions d’importation et d’exportation ne sont pas prises en charge dans les scripts, tels que les règles métier ou les script includes. Ils ne sont pris en charge que dans les modules.
- Les bibliothèques tierces ajoutées à votre application ne peuvent pas accéder aux API ni les appeler ServiceNow .
- Les modules CommonJS de bibliothèques tierces ne sont pas pris en charge, sauf s’ils définissent des exportations. Les importations de sous-chemins d’accès ne sont pas prises en charge avec les modules CommonJS. Les modules ECMAScript de bibliothèques tierces sont pris en charge.
- Les API Glide globales ne sont pas disponibles dans les modules par défaut. Ils peuvent être importés à partir du package @servicenow/glide .
- Les modules JavaScript [sys_module] ne peuvent pas être modifiés à partir de la plateforme. Ils doivent être modifiés et déployés sur Visual Studio Code l’instance avec le SDK.
Exportation des modules
export { myFunction, myVariable };
Pour que les scripts et les modules de différentes applications accèdent au code à partir d’un module, définissez un point d’entrée vers l’application avec le champ exportations dans le fichier package.json . Les exemples suivants concernent une application nommée « math » pour les fonctions mathématiques.
| Méthode | Exemple |
|---|---|
Fournissez une valeur de chaîne qui pointe vers un module. |
|
Utilisez un objet où |
|
Exportez uniquement les modules add.js et subtract.js en tant qu’exportations de chemins d’accès secondaires. |
|
Exportez tous les fichiers, y compris les sous-répertoires, à partir d’un chemin spécifié. |
|
Exportez uniquement les fichiers d’un certain type de fichier à partir d’un chemin spécifié. |
|
Exportez des fichiers d’un certain type de fichier, mais gardez privé un dossier dans un répertoire. |
|
Importation de modules
Pour importer le code du module que vous souhaitez réutiliser, utilisez les instructions import dans d’autres modules ou exigez des instructions dans les scripts côté serveur.
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"
}
}#derivative à la place. Les sous-chemins d’accès peuvent également être utilisés dans le champ d’importation pour utiliser l’abréviation des dépendances, telles que #calc.import { derivative } from '#derivative';
import * as calculus from '#calc';Ajout de dépendances
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"math": "1.0.0"
}
}