Módulos JavaScript e bibliotecas de terceiros
Otimize sua base de código usando módulos JavaScript para agrupar código relacionado ou adicionar bibliotecas de terceiros e reutilizar seu código em aplicações.
Visão geral
Um módulo é um arquivo JavaScript que contém código relacionado que é exportado e reutilizado em aplicações em uma instância. Em aplicações com escopo que são criadas ou convertidas usando o ServiceNow SDK, você pode adicionar módulos JavaScript e bibliotecas de terceiros de Visual Studio Code. Você também pode usar o TypeScript para criar módulos e compilá-los para JavaScript antes de criar sua aplicação com o SDK.
Em um módulo, você identifica o código para reutilização com declarações de exportação. Para que módulos externos e scripts acessem o código do módulo, você adiciona pontos de entrada no campo de exportações no arquivo package.json da aplicação. Em seguida, use instruções import ou exigem para reutilizar o código em outro lugar em suas aplicações. As aplicações devem declarar dependências em outras aplicações ou em bibliotecas do Node Package Manager (npm) de terceiros para usar o código do módulo.
Depois de adicionar módulos e implantar a aplicação local em uma instância, os módulos são armazenados na tabela Módulo EcmaScript [sys_module]. Se um módulo for usado em várias aplicações, ele terá vários registros na tabela Módulo EcmaScript [sys_module].
Para obter informações gerais sobre a sintaxe usada para criar módulos JavaScript, consulte a página de módulos JavaScript no site do MDN Web Docs. Para usar o TypeScript em sua aplicação, consulte Usando TypeScript com o SDK ServiceNow.
Limitações
- Aplicações globais e personalizações de aplicação não são compatíveis.
- Um subconjunto de recursos do ECMAScript é compatível com os módulos de acordo com o Suporte ao recurso do mecanismo JavaScript.
- As APIs do Node.js não são compatíveis com os módulos.
- Variáveis globais relacionadas a APIs da Web não são compatíveis.
- as instruções deimportação e exportação não são compatíveis com scripts, como regras de negócios ou inclusões de script. Eles só são compatíveis com módulos.
- Bibliotecas de terceiros adicionadas à sua aplicação não podem acessar ou chamar ServiceNow APIs.
- Módulos CommonJS de bibliotecas de terceiros não são compatíveis, a menos que definam exportações. As importações de subcaminho não são compatíveis com os módulos CommonJS. Módulos ECMAScript de bibliotecas de terceiros são compatíveis.
- As APIs globais do Glide não estão disponíveis em módulos por padrão. Eles podem ser importados do pacote @servicenow/glide.
- Os módulos JavaScript [sys_module] não podem ser modificados na plataforma. Eles devem ser modificados em Visual Studio Code e implantados na instância com o SDK.
Exportando módulos
export { myFunction, myVariable };
Para que scripts e módulos em diferentes aplicações acessem o código de um módulo, defina um ponto de entrada para a aplicação com o campo de exportações no arquivo package.json. Os exemplos a seguir são para uma aplicação chamada "math" para funções matemáticas.
| Método | Exemplo |
|---|---|
Forneça um valor de cadeia de caracteres que aponte para um módulo. |
|
Use um objeto em que |
|
Exporte somente os módulos add.js e subtract.js como exportações de subcaminho. |
|
Exporte todos os arquivos, incluindo subdiretórios, de um caminho especificado. |
|
Exporte somente arquivos de um determinado tipo de arquivo de um caminho especificado. |
|
Exporte arquivos de um determinado tipo de arquivo, mas mantenha uma pasta em um diretório privado. |
|
Importando módulos
Para importar o código do módulo que você deseja reutilizar, use instruções de importação em outros módulos ou exija declarações em scripts do lado do servidor.
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. Os subcaminhos também podem ser usados no campo de importações para usar abreviações para dependências, como #calcul.import { derivative } from '#derivative';
import * as calculus from '#calc';Adicionando dependências
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"math": "1.0.0"
}
}