JavaScript 모듈 및 타사 라이브러리
JavaScript 모듈을 사용해 코드 베이스를 최적화함으로써 관련 코드를 그룹화하거나 타사 라이브러리를 추가하고 애플리케이션 내에서 해당 코드를 재사용할 수 있습니다.
JavaScript 모듈 사용 개요
모듈은 인스턴스의 애플리케이션 내에서 공유되고 재사용되는 관련 코드를 포함하는 JavaScript 파일입니다. 또는 ServiceNow SDK를 사용하여 ServiceNow IDE 작성되거나 변환되는 범위가 지정된 애플리케이션에서 JavaScript 모듈 및 타사 라이브러리를 추가할 수 있습니다. TypeScript를 사용하여 모듈을 만들고 애플리케이션을 빌드하기 전에 JavaScript로 컴파일할 수도 있습니다. 인스턴스에서 JavaScript 모듈은 EcmaScript 모듈 [sys_module] 테이블에 저장됩니다.
모듈에서 export 문과 함께 재사용할 코드를 식별합니다. 그런 다음 import 또는 require 문을 사용하여 응용 프로그램의 다른 곳에서 코드를 재사용합니다. 애플리케이션은 모듈 코드를 사용하기 위해 타사 npm(노드 패키지 관리자) 라이브러리에 대한 종속성을 선언해야 합니다. JavaScript 모듈을 만드는 데 사용되는 구문에 대한 일반적인 정보는 MDN Web Docs 웹 사이트의 JavaScript 모듈 페이지를 참조하십시오.
주:
모듈에서 전역 Glide API를 사용하려면
@servicenow/glide 패키지에서 임포트해야 합니다. 예: import { gs } from '@servicenow/glide'.제한
- 전역 애플리케이션 및 애플리케이션 사용자 지정은 지원되지 않습니다.
- 모듈은 추가된 애플리케이션 범위 내에서만 사용할 수 있습니다. 애플리케이션 범위 간에 사용할 수 없습니다.
- ECMAScript 기능의 하위 집합은 JavaScript 엔진 기능 지원.
- Node.js API는 모듈에서 지원되지 않습니다.
- 웹 API와 관련된 전역 변수는 지원되지 않습니다.
- 애플리케이션에 추가된 타사 라이브러리는 API에 액세스하거나 API를 호출할 ServiceNow 수 없습니다.
- 타사 라이브러리의 CommonJS 모듈은 내보내기를 정의하지 않는 한 지원되지 않습니다. 하위 경로 임포트는 CommonJS 모듈에서 지원되지 않습니다. 타사 라이브러리의 ECMAScript 모듈이 지원됩니다.
- import 및 export 문은 모듈에서만 지원됩니다. 비즈니스 규칙 또는 스크립트 포함과 같은 스크립트의 모듈 코드를 임포트하려면 require 문을 사용합니다.
- JavaScript 모듈 [sys_module]은 ServiceNow IDEVisual Studio CodeServiceNow SDK.
중요사항:
지원되지 않는 API 또는 ECMAScript 기능과 같이 지원되지 않는 기능에 의존하는 타사 라이브러리는 사용할 수 없습니다.
모듈 익스포트 중
모듈에서 export 문과 함께 재사용할 코드를 식별합니다. 명명된 내보내기 또는 기본 내보내기를 사용할 수 있습니다. 명명된 내보내기는 변수, 상수, 함수 또는 클래스에 대한 것일 수 있지만 기본 내보내기는 함수 또는 클래스에만 사용할 수 있습니다. 다음 예는 모듈의 여러 기능(함수 및 변수)에 대해 명명된 내보내기를 추가하는 한 가지 방법입니다.
export { myFunction, myVariable };
모듈 임포트
다시 사용할 모듈 코드를 가져오려면 다른 모듈의 import 문을 사용하거나 서버측 스크립트의 require 문을 사용합니다.
다음 예는 모듈에서 내보낸 기능을 가져올 수 있는 한 가지 방법입니다.
import { feature } from "path/to/module";
다음 예시는 스크립트에서 내보낸 기능을 임포트할 수 있는 한 가지 방법입니다.
const { feature } = require("path/to/module");
축약형을 사용하여 모듈 코드를 임포트하려면 애플리케이션의 package.json 파일에 있는 imports 필드에 하위 경로를 사용할 수 있습니다. 예:
{
"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.js 상대 경로를 작성하는 대신
#derivative 약어를 대신 사용할 수 있습니다. imports 필드에서 하위 경로를 사용하여 #calc와 같은 종속성에 대한 축약형을 사용할 수도 있습니다.import { derivative } from '#derivative';
import * as calculus from '#calc';의존성 추가
애플리케이션은 모듈 코드를 사용하기 위해 타사 라이브러리에 대한 종속성을 선언해야 합니다. 애플리케이션의 package.json 파일에서 모든 종속성에 대한 패키지 이름과 버전을 포함합니다. 예를 들어, "test" 애플리케이션에서 "math" 라이브러리의 모듈을 사용하려면 "math" 패키지를 종속성으로 추가합니다.
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"math": "1.0.0"
}
}