質問/課題
Grunt の loadNpmTasks() によるプラグインの読込の際、読込むプラグインが、カレントの node_modules 以外の
global.module.paths 記載の何れかにある場合でも正しく読み込ませる方法があればご教授下さい。
詳細
開発環境の都合上、node_modules をプロジェクトコード内に配備する事は避ける必要があります。
よって、プロジェクトコード外ですが global.module.paths には掲載されたPATH上から、Grunt のタスクを使って必要となる JavaScript (etc..) をプロジェクト構築の際に逐次コピーさせようと目論んでいます。
意図するプラグイン('grunt-contrib-copy')も global.module.paths 上に投入済みですが、grunt.loadNpmTasks('grunt-contrib-copy'); を実行すると、
Local Npm module "grunt-contrib-copy" not found. Is it installed?
と、エラーが返ります。
埒が明かない為、grunt/lib/grunt/task.js の実装を確認したところ、カレントの node_modules しか見ていないように見えます。
固定的に path.resolve('node_modules'); をパスに追加していますので、絶対パスでも NG です。
対応
残る選択肢は、自力で Grunt の loadNpmTasks の実装を改修する他無いのかと考えています。
ただ、Grunt を更新した場合そのバージョニングの管理が付随してきますので可能なら避けたいところです。
どなたか Grunt のコードに手を付けず、その他の方法で**<質問>**の内容に対応させる方法をご存じ無いでしょうか。
あなたの回答
tips
プレビュー