Docs Menu
Docs Home
/ /
Atlas App Services
/

外部依存関係

項目一覧

  • 外部パッケージを追加する
  • 名前とバージョンでパッケージを追加
  • 依存関係ディレクトリのアップロード
  • 関数内のパッケージをインポートする
  • 完全なモジュールをインポート
  • モジュール サブフォルダーのインポート

外部依存関係は、自分で実装できない、または実装したくないコードを含むライブラリです。 たとえば、外部サービスには公式のライブラリを使用したり、データ構造やアルゴリズムのカスタム実装を使用したりできます。

Atlas App Services は依存関係を自動的にトランスファイルし、ほとんどの組み込み Node.js モジュールもサポートします。

注意

独自のモジュールを作成

ほとんどの npm モジュールはサードパーティによって記述されていますが、アプリケーション固有のロジックを格納するために、独自の npm モジュールを作成して公開することもできます。 モジュールを Node.js Community で使用できるようにしたり、プライベート使用のために予約したりすることもできます。 詳細については、 のレジストリへのパッケージの貢献 に関する npm のガイドをご覧ください。

外部依存関係をインポートして使用するには、まずアプリケーションに依存関係を追加する必要があります。 名前を使用してパッケージを追加するか、依存関係のディレクトリをアップロードできます。

重要

既存の依存関係の上書き

アプリが使用できる外部パッケージを指定するには、一度に 1 つの方法のみを使用できます。 依存関係を指定するために使用した最新の方法は真実のソースであり、以前の指定を上書きします。

たとえば、UI を介して名前を追加したパッケージは、アップロードされた依存関係ディレクトリにあるパッケージを含め、以前に追加した同じパッケージのコピーを上書きします。

npm レジストリ からパッケージを追加できます アプリの名前を使用して特定のバージョンを追加するか、最新バージョンを使用できます。

1
  1. 左側のナビゲーション メニューから [ Functionsを選択します。

  2. Dependencies タブを選択します。

  3. Add Dependencyボタンをクリックします。

2

前のステップのアクションからポップアップするAdd Dependencyモーダル ウィンドウに、次の情報を含めます。

フィールド
説明
パッケージ名を定義する
npm パッケージの名前。
パッケージ バージョン
任意。 使用する依存関係の特定のバージョン。 デフォルトでは、App Services は利用可能な最新バージョンを使用します。

パッケージの追加を開始するには、 Addボタンをクリックします。

依存関係を追加する状況は、ウィンドウの下部にある進行状況追跡で追跡できます。 進行状況追跡は、パッケージが成功したか失敗したかを示すメッセージを提供します。 失敗メッセージには、パッケージを追加できなかった理由に関する追加情報が含まれています。

配置案が有効になっている場合は、これらの変更を適用するためにReview & Deployをクリックする必要もあります。

3

App Services が依存関係を正常に追加すると、 Dependenciesタブの依存関係のリストにそれが表示されます。

1

コマンドを使用してアプリをデバイスにプルします。

appservices pull
2
  1. アプリの/functionsディレクトリに package.jsonを作成します。 これは、既存のpackage.jsonファイルをコピーするか、 npm initを実行してプロンプトに従うことで可能です。

  2. npm install <dependency-name>を実行して依存関係を追加します。

3
  1. アプリのルート ディレクトリにGoします。

    cd path/to/MyRealmApp
  2. すべての依存関係を含むアプリの最新バージョンをpackage.jsonにプッシュします。

    appservices push --include-package-json
  3. CLI のプロンプトに従って、操作に依存関係を含めるかどうかを確認します。 CLI により、アプリへの依存関係の追加が開始されます。

4

依存関係の追加が完了すると、CLI はすべてのパッケージが正常に追加されたかどうかを示します。

インストール中に失敗した場合、依存関係はインストールされません。 package.jsonファイルから失敗した依存関係を削除して、もう一度お試しください。

1

Github の自動配置を有効にすることで、 Github の指定されたブランチに構成更新をプッシュするたびにアプリを再配置できます。

2

コマンドを使用してアプリをデバイスにプルします。

appservices pull
3
  1. アプリの/functionsディレクトリにpackage.jsonを作成します。 これは、既存のpackage.jsonファイルをコピーするか、 npm initを実行してプロンプトに従うことで可能です。

  2. npm install <dependency-name>を実行して依存関係を追加します。

4

次のようなコマンドを使用して、 package.json内のすべての依存関係を含むアプリの最新バージョンを Github に Github にプッシュします。

git push origin main
5

App Services Githubアプリは、コミットをプッシュすると更新されたアプリ構成を自動的に配置します。 配置のステータスを確認し、すべてのパッケージが正常に追加されたことは、App Services UI のDeployment画面から確認できます。

配置中に失敗した場合、依存関係はインストールされません。 package.jsonファイルから失敗した依存関係を削除して、もう一度お試しください。

圧縮されたnode_modulesディレクトリのパッケージをアプリにアップロードできます。 圧縮された依存関係ディレクトリは 15 MB を超えることはできません。

1

外部依存関係をアップロードするには、まず少なくとも 1 つの Node.js パッケージを含むローカルnode_modulesフォルダーが必要です。 次のコード スニペットを使用して、アップロードする依存関係をローカルにインストールできます。

npm install <package name>

node_modulesフォルダがまだ存在しない場合、このコマンドはそれを自動的に作成します。

注意

インストールの代替方法

また、 package.jsonを構成し、 npm installコマンドを実行して、 package.jsonにリストされているすべてのパッケージ(およびその依存関係)をインストールすることもできます。

npm とnode_modules の詳細については、 npm ドキュメント を参照してください 。

2

すべての npm モジュールをダウンロードしたので、App Services にアップロードできるように、アーカイブにパッケージ化する必要があります。 node_modulesフォルダーを含むアーカイブを作成します。

tar -czf node_modules.tar.gz node_modules/

注意

サポートされているアーカイブ形式

App Services は、 .tar.tar.gz.tgz.zipアーカイブ形式をサポートしています。

3

依存関係を含むアーカイブを作成したら、App Services UI または App Services CLI を使用して依存関係アーカイブをアップロードできます。

  1. 左側のナビゲーション メニューからFunctionsを選択します。

  2. Dependencies タブを選択します。

  3. Uploadボタンをクリックします。

  4. ファイル ピッカーで、作成したnode_modules.tar.gzアーカイブを選択し、[ 開く ] をクリックします。 App Services はアーカイブ ファイルを自動的にアップロードします。このアップロードに数分かかる場合があります。これには、インターネット接続の速度と依存関係アーカイブのサイズによっては、数分かかる場合があります。

  5. 操作が成功したか失敗したかにかかわらず、App Services には操作の成功または失敗を示すバナーが表示されます。 成功した場合、 Dependenciesタブには依存関係アーカイブに含めた依存関係のリストが表示されます。 配置案が有効になっている場合は、これらの変更を適用するためにReview & Deployをクリックする必要もあります。 配置案が無効になっている場合、依存関係アーカイブのサイズに応じて 5 ~ 60 秒以内に変更が有効になります。

  1. node_modulesアーカイブを/functionsディレクトリに追加します。

    mv node_modules.tar.gz ./myapp/functions
  2. --include-node-modulesオプションを使用してアプリケーションをプッシュします。

    appservices push --include-node-modules

アプリに追加した組み込みモジュールと外部パッケージをインポートし、関数で使用できます。 パッケージをインポートするには、関数本体内からパッケージ名を指定してrequire()を呼び出します。

重要

モジュールをインポートするには

Node.js プロジェクトは通常、各ファイルのグローバル スコープにrequire()呼び出しを配置しますが、App Services はこのパターンをサポートしていません。 App Services require()呼び出しは関数スコープ内に配置する必要があります。

exports = () => {
const R = require("ramda");
return R.map(x => x*2, [1,2,3]);
}
exports = function(arg){
const cloneDeep = require("lodash/cloneDeep");
var original = { name: "Deep" };
var copy = cloneDeep(original);
copy.name = "John";
console.log(`original: ${original.name}`);
console.log(`copy: ${copy.name}`);
return (original != copy);
};

戻る

Global Modules