Modules JavaScript et bibliothèques tierces

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 5 minutes de lecture
  • Optimisez votre base de code à l’aide de modules JavaScript pour regrouper du code connexe ou ajouter des bibliothèques tierces et réutiliser leur code dans les applications.

    Vue d’ensemble de l’utilisation des modules JavaScript

    Un module est un fichier JavaScript qui contient du code connexe partagé et réutilisé dans les applications d’une instance. Vous pouvez ajouter des modules JavaScript et des bibliothèques tierces dans les applications incluses dans le périmètre qui sont créées ou converties avec le ServiceNow IDE ou ServiceNow SDK. Vous pouvez également utiliser TypeScript pour créer des modules et les compiler en JavaScript avant de créer votre application. Après l’installation d’une application sur une instance, les modules JavaScript sont stockés dans la table du module EcmaScript [sys_module].

    Dans un module, vous identifiez le code à réutiliser avec des instructions d’exportation . Ensuite, utilisez les instructions import ou require pour réutiliser le code ailleurs dans vos applications. Vous devez ajouter des bibliothèques de gestionnaires de packages de nœuds (npm) tierces aux applications en tant que dépendances pour utiliser leur code de module. Pour des informations générales sur la syntaxe utilisée pour créer des modules JavaScript, consultez la page Modules JavaScript sur le site Web de MDN Web Docs.

    Remarque :
    Pour utiliser les API de serveur Glide globales dans les modules, elles doivent être importées à partir du package @servicenow/glide . Pour plus d'informations, consultez Importation des API du serveur.

    Limitations

    • Les applications globales et personnalisations d’application ne sont pas prises en charge.
    • Les modules ne peuvent être utilisés que dans le périmètre de l’application dans lequel ils sont ajoutés. Ils ne peuvent pas être utilisés dans tous les périmètres de l’application.
    • Un sous-ensemble de fonctionnalités ECMAScript est pris en charge dans les modules conformément à la .JavaScript engine feature support
    • Node.js Les API ne sont pas prises en charge dans les modules. Le ServiceNow SDK processus de construction polyremplit tous les modules intégrés Node.js lors de l’empaquetage des modules, sinon les modules sont résolus à partir du répertoire node_modules .
    • Les variables globales liées aux API Web ne sont pas prises en charge.
    • Les bibliothèques tierces ajoutées à votre application ne peuvent pas accéder aux API ni les appeler ServiceNow .
    • Les modules CommonJS des bibliothèques tierces ne sont pas pris en charge à moins qu’ils ne 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 instructions d’importation et d’exportation ne sont prises en charge que dans les modules. Pour importer du code de module dans des scripts, tels que des règles métier ou des includes de script, utilisez des instructions require .
    • Les modules JavaScript [sys_module] ne peuvent être modifiés que dans le ou avec Visual Studio Code le ServiceNow IDE .ServiceNow SDK
    Important :
    Vous ne pouvez pas utiliser de bibliothèques tierces qui reposent sur des fonctionnalités non prises en charge, telles que des API ou des fonctionnalités ECMAScript non prises en charge. Pour plus d'informations, consultez Prise en charge des bibliothèques tierces.

    Exportation de modules

    Dans un module, identifiez le code à réutiliser avec des instructions d’exportation . Vous pouvez utiliser des exportations nommées ou des exportations par défaut. Les exportations nommées peuvent concerner des variables, des constantes, des fonctions ou des classes, tandis que les exportations par défaut peuvent concerner uniquement des fonctions ou des classes. L’exemple suivant est une façon d’ajouter une exportation nommée pour plusieurs entités (une fonction et une variable) dans un module :
    export { myFunction, myVariable };

    Importation de modules

    Pour importer le code du module que vous souhaitez réutiliser, utilisez des instructions d’importation dans d’autres modules ou demandez des instructions dans des scripts côté serveur.

    L’exemple suivant vous permet d’importer une fonction exportée dans un module :
    import { feature } from 'path/to/module';
    L’exemple suivant vous permet d’importer une fonction exportée dans un script :
    const { feature } = require('path/to/module');
    Remarque :
    Pour importer du code d’un fichier TypeScript vers un autre fichier TypeScript, vous devez inclure l’extension de fichier .ts . Par exemple, importez { feature } à partir de './module.ts'.
    Pour utiliser la sténographie pour importer le code d’un module, vous pouvez utiliser des sous-chemins d’accès dans le champ imports du fichier package.json de l’application. Par exemple :
    {
    	"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"
    	}
    }
    Sur la base de cet exemple, au lieu d’écrire le chemin d’accès relatif à derivative.js chaque fois que vous souhaitez l’importer dans l’application mathématique , vous pouvez utiliser le raccourci #derivative à la place. Les sous-chemins d’accès peuvent également être utilisés dans le champ d’importation pour utiliser un raccourci pour les dépendances, telles que #calc.
    import { derivative } from '#derivative';
    import * as calculus from '#calc';

    Ajout de bibliothèques tierces

    Les applications doivent déclarer des dépendances à des bibliothèques tierces pour utiliser leur code de module. Dans le fichier package.json d’une application, incluez le nom et la version du package pour toutes les dépendances. Par exemple, pour utiliser des modules de la bibliothèque « math » dans l’application « test », ajoutez le package « math » en tant que dépendance :
    {
    	"name": "test",
    	"version": "1.0.0",
    	"dependencies": {
    		"math": "1.0.0"
    	}
    }

    Importation des API du serveur

    Pour importer des API serveur et les utiliser dans un module, utilisez des instructions d’importation . Les API Glide peuvent être importées à partir du package @servicenow/glide ou de leur espace de noms dans le package.

    Par exemple :
    import { API } from '@servicenow/glide';
    import { API } from '@servicenow/glide/<namespace>';
    Dans l’exemple suivant, les API gs (GlideSystem) et GlideRecord sont importées dans un module :
    import { gs } from '@servicenow/glide';
    import { GlideRecord } from '@servicenow/glide';
    Dans l’exemple suivant, les API RESTAPIRequest et RESTAPIResponse sont importées à partir de l’espace de noms sn_ws_int d’un module, car elles s’exécutent dans cet espace de noms :
    import { RESTAPIRequest, RESTAPIResponse } from '@servicenow/glide/sn_ws_int';

    Pour plus d’informations sur les API serveur disponibles, reportez-vous à la section Server API reference.

    L’importation d’includes de script

    Pour importer des includes de script et les utiliser dans un module, utilisez des instructions d’importation . Les includes de script peuvent être importés à partir de leur périmètre d’application ou du périmètre global du package @servicenow/glide .

    Par exemple :
    import { global } from '@servicenow/glide/global';
    import { ScriptInclude } from '@servicenow/glide/<scope>';

    Pour plus d’informations sur les includes de script, reportez-vous à la section Script includes.