2016-05-19 9 views
1

私はすべて、特定のフォルダ構造と慣習に従う多くのプロジェクトを持っています。プロジェクト間でgulpフレームワークを共有できますか?

プロジェクト全体を複製するのではなく、プロジェクトごとに構成オブジェクトを用意し、各プロジェクトがグローバルフレームワークにリンクしたいと考えています。

例:

/gulp-framework 
    index.js 
/project-a 
    gulpfile.js 
    configuration.js 
/project-b 
    gulpfile.js 
    configuration.js 

インサイドindex.js

var configuration = require('configuration'); 

インサイドconfiguration.js:ゴクゴクファイル内

module.exports = function() { 
    return { foo : true }; 
} 

私が持っているでしょう:

require('./configuration'); 
require('../gulp-framework'); 

しかし、ガルプを実行するとエラーが表示されるだけです。

「モジュール設定が見つかりません」。

私がしようとしているのは、configオブジェクトをグローバルフレームワークに渡すことですが、大したことはありません。

アイデア?

+0

私はあなたが "./" var configuration = require( './ configuration');を忘れてしまったと思います。 inside index.js –

+0

いいえ私はconfiguration.jsからエクスポートされたモジュールを参照しようとしています –

答えて

1

require('configuration')index.jsに基本的に使用すると、のconfigurationモジュールが検索されます。 configuration.jsproject-aまたはproject-bからロードされません。 (require()hereどのように動作するかの正確なロジックの詳細をお読みください。)

を明示的に設定し、一息オブジェクトを渡す必要がありますあなたのgulpfile.jsindex.jsへ:

var config = require('./configuration.js'); 
var gulp = require('../gulp-framework')(require('gulp'), config); 

// project-specific stuff using gulp and config goes here 
:各 gulpfile.js

でindex.js

module.exports = function(gulp, config) { 
    // project-independent stuff using gulp and config goes here 

    return gulp; 
}; 
+0

素晴らしいこれを明日試してみましょう! Cheers –

+0

これは、この問題を解決するのに役立ちました。最後の問題は、私の主なフレームワークが/ gulp-frameworkの下でどのように生きているかを見ることです。 gulpfile.jsを各プロジェクト内に置くことはできますか?それでも、project-a/node_modules内のnode_modulesを探しているようです。 –

+0

2つのオプション:1. [グローバルフォルダから読み込む](https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders)。 2. 'project-a'を' gulp-framework'のサブディレクトリにします。 –

関連する問題