2017-12-10 14 views
0

私はラムダを初めて使い、node_modulesへの依存性をどのように配備するかを考えようとしています。私はServerlessを使用していないことに注意してください。私はラムダ関数をバンドルするためにwebpackを使用しています。node_modulesへの依存性を含むラムダ

私が考えた最初のことは、webpack構築プロセスの一部としてnode_module依存関係を1つのファイルとしてバンドルすることでした。しかし、私はこれが良いことではないと考えましたか?次のオプションは、対応する依存ノードモジュールをlambda deployment zipフォルダにコピーすることです。しかし、ここにある問題/質問は、

  1. です。これは依存関係を展開する標準的な方法ですか?
  2. 私の依存関係が別の依存関係に依存する場合は、dependency2と言うことができます。これをどのように知っているのですか?これをコピーする必要はありますか?
  3. 私が逃したことをするための他の標準的な方法はありますか?

答えて

0

これは依存関係を展開する標準的な方法ですか?

標準的な方法は、ハンドラファイルとnode_modulesディレクトリを含むzipパッケージを必要に応じてアップロードすることです。

webpackの方法は、(ほとんどの単純なケースでは)1つのファイルにすべての依存関係を既に含む単一のjavascriptファイルバンドルを作成することです。依存関係がネイティブバインディングに依存する場合(例:bcrypt)、それらをwebpackから除外することができ、bcryptを通常node_modulesディレクトリに含めることができます。

私の依存関係が別の依存関係に依存している場合は、dependency2と言うことができます。どのようにしてこれを知ることができますか?これをコピーする必要はありますか?

標準的な方法を使用して、npmはすでにこれらの依存関係を処理しています。したがって、展開パッケージ内にnode_modulesを含めるだけです。

webpackを使用して、これを処理します。正しく構成する方法を学ぶだけです。

のWebPACKの設定のための最小限の例として、あなたはこれを使用することができます。

const path = require('path'); 

module.exports = { 
    entry: { 
    handler: './handler.js', 
    }, 
    target: 'node', 
    output: { 
    libraryTarget: 'commonjs', 
    path: path.join(__dirname, '.webpack'), 
    filename: '[name].js' 
    }, 
};