Modules JavaScript et bibliothèques tierces

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 4 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 des applications.

    Vue d'ensemble

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

    Dans un module, vous identifiez le code à réutiliser avec les instructions d’exportation . Ensuite, utilisez les instructions import ou require pour réutiliser le code ailleurs dans vos applications. Les applications doivent déclarer des dépendances à des bibliothèques Node Package Manager (npm) tierces pour utiliser le code de leur 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.

    Remarque :
    Pour utiliser les API Glide globales dans les modules, elles doivent être importées à partir du package @servicenow/glide . Par exemple : importer { gs } à partir de « @servicenow/glide ».

    Limitations

    • Les applications globales et les 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 Prise en charge des fonctionnalités du moteur JavaScript.
    • Node.js API ne sont pas pris en charge dans les modules.
    • Les variables globales associé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 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 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 ServiceNow IDE ou dans Visual Studio Code avec le ServiceNow SDKfichier .
    Important :
    Vous ne pouvez pas utiliser des 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.

    Exportation des modules

    Dans un module, identifiez le code à réutiliser avec les 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 ne peuvent concerner que 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 import dans d’autres modules ou exigez des instructions dans des scripts côté serveur.

    L’exemple suivant est une façon d’importer une entité exportée dans un module :
    import { feature } from "path/to/module";
    
    L’exemple suivant est une façon d’importer une entité exportée dans un script :
    const { feature } = require("path/to/module");
    
    Pour utiliser l’abréviation pour importer le code du module, vous pouvez utiliser des sous-chemins 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"
    	}
    }
    D’après 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 l’abréviation #derivative à la place. Les sous-chemins d’accès peuvent également être utilisés dans le champ d’importation pour utiliser des raccourcis pour les dépendances, telles que #calc.
    import { derivative } from '#derivative';
    import * as calculus from '#calc';

    Ajout de dépendances

    Les applications doivent déclarer des dépendances à des bibliothèques tierces pour utiliser le code de leur module. Dans le fichier de 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"
    	}
    }