Node.jsでプロジェクト内の共通モジュールの依存関係どうするかハマったのでメモ

Node.jsでプロジェクト内の共通モジュールの依存関係どうするかハマったのでメモ

AWS Lambdaで複数APIを作るプロジェクト内で共通モジュールの依存関係どうやったら良いかで悩んだのでメモです。

共通モジュールはcommonフォルダ配下に配置するとします。

各共通モジュールは以下のようなイメージです。class定義してmodule.exportsしています。// stringutil.js

index.jsで各ファイルをmodule.exportsします。

共通モジュールが増えたらindex.jsに記述を追加してあげます。

package.json

commonフォルダ配下にpackage.jsonを用意してあげます。

index.jsを指定、private:trueとしておきます。

プロジェクトのルートでnpmコマンドを実行します。

これでプロジェクトルートのpackage.jsonのdependenciesにcommonが追加されます。

node_modules配下にシンボリックリンクが作成されるのでcommonフォルダ配下を修正すれば即反映されるので便利です。

逆に考えると、プロジェクトルートのpackage.jsonに最初から上記依存関係を記述してあげて、npm iしてあげればシンボリックリンクが作成されます。

Node.jsでプロジェクト内の共通モジュールの依存関係どうするかハマったのでメモ

これで共通モジュールを使用する側のjsファイルから使用することができます。

以下、使用例です。

gulpでcopy

gulpでデプロイするときにシンボリックリンクはエラーとなります。

その為、src/commonをnode_modules/commonにコピーするタスクを作成しておきます。

modulesフォルダ配下のnode_modules/common/にコピーしている例です。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA