JavaScript モジュールとサードパーティライブラリ
JavaScript モジュールを使用してコードベースを最適化し、関連するコードをグループ化したり、サードパーティライブラリを追加してアプリケーション内でコードを再利用したりします。
JavaScript モジュールの使用の概要
モジュールは JavaScript ファイルであり、インスタンス上のアプリケーション内で共有および再利用される関連コードが含まれています。ServiceNow IDE または ServiceNow SDK で作成または変換されたスコープ対象のアプリケーションに、JavaScript モジュールとサードパーティライブラリを追加できます。アプリケーションをビルドする前に、TypeScript を使用してモジュールを作成し、それを JavaScript にコンパイルすることもできます。インスタンスにアプリケーションをインストールすると、JavaScript モジュールは EcmaScript モジュールの [sys_module] テーブルに格納されます。
モジュールでは、export ステートメントで再利用するコードを特定します。次に、import ステートメントまたは require ステートメントを使用して、アプリケーションの他の場所でコードを再利用します。モジュールコードを使用するには、サードパーティのノードパッケージマネージャー (npm) ライブラリを依存関係としてアプリケーションに追加する必要があります。JavaScript モジュールの作成に使用される構文に関する一般的な情報については、MDN Web Docs Web サイトの「JavaScript modules (JavaScript モジュール)」ページを参照してください。
@servicenow/glide パッケージからインポートする必要があります。詳細については、「サーバー API のインポート」を参照してください。制限事項
- グローバルアプリケーションとアプリケーションのカスタマイズはサポートされていません。
- モジュールは、追加されたアプリケーションスコープ内でのみ使用できます。アプリケーションスコープ全体で使用することはできません。
- ECMAScript 機能のサブセットは、「JavaScript engine feature support」に従ってモジュールでサポートされます。
- Node.js API はモジュールではサポートされていません。ServiceNow SDKビルドプロセスは、モジュールのパッケージ化中にNode.jsビルトインモジュールをポリフィルします。それ以外の場合、モジュールはnode_modulesディレクトリから解決されます。
- Web API に関連するグローバル変数はサポートされていません。
- アプリケーションに追加されたサードパーティライブラリは、ServiceNow API に対するアクセスや呼び出しはできません。
- サードパーティライブラリからの CommonJS モジュールは、エクスポートが定義されていない限りサポートされません。サブパスのインポートは CommonJS モジュールではサポートされていません。サードパーティライブラリからの ECMAScript モジュールはサポートされています。
- import ステートメントと export ステートメントは、モジュールでのみサポートされています。ビジネスルールやスクリプトインクルードなど、スクリプトにモジュールコードをインポートするには、require ステートメントを使用します。
- JavaScript モジュール [sys_module] は、ServiceNow IDE 内、または ServiceNow SDK の Visual Studio Code でのみ変更できます。
モジュールのエクスポート
export { myFunction, myVariable };モジュールのインポート
再利用するモジュールコードをインポートするには、他のモジュールで import ステートメントを使用するか、サーバーサイドスクリプトで require ステートメントを使用します。
import { feature } from 'path/to/module';const { feature } = require('path/to/module');.ts ファイル拡張子を含める必要があります。たとえば、「 ./module.ts」から { feature } をインポートします。{
"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 短縮形を使用できます。サブパスを imports フィールドで使用して、#calc などの依存関係の短縮形を使用することもできます。import { derivative } from '#derivative';
import * as calculus from '#calc';サードパーティライブラリの追加
{
"name": "test",
"version": "1.0.0",
"dependencies": {
"math": "1.0.0"
}
}サーバー API のインポート
サーバー API をインポートしてモジュールで使用するには、 import ステートメントを使用します。Glide API は、 @servicenow/glide パッケージまたはパッケージ内の名前空間からインポートできます。
import { API } from '@servicenow/glide';
import { API } from '@servicenow/glide/<namespace>';import { gs } from '@servicenow/glide';
import { GlideRecord } from '@servicenow/glide';sn_ws_int 名前空間で実行されるため、その名前空間からインポートされます。import { RESTAPIRequest, RESTAPIResponse } from '@servicenow/glide/sn_ws_int';使用可能なサーバー API の詳細については、「 Server API reference」を参照してください。
スクリプトインクルードのインポート
スクリプトインクルードをインポートしてモジュールで使用するには、 import ステートメントを使用します。スクリプトインクルードは、 @servicenow/glide パッケージのアプリケーションスコープまたはグローバルスコープからインポートできます。
import { global } from '@servicenow/glide/global';
import { ScriptInclude } from '@servicenow/glide/<scope>';スクリプトインクルードの詳細については、「 Script includes」を参照してください。