2016-05-02 11 views
0

2つのエントリポイントを含むプロジェクトがあり、2つのpackage.jsonがあります。私はjavascript/lessファイルをビルドするためにこの2つのフォルダにgulpを使用しています。NodeJSは、必要なnode_modulesパスを指定します

コードの重複を避けるために共通の機能を使用したいと考えています。 ここで

  • DIRA/
    • node_modules/
    • gulpfile.js
  • DIRB/
    • node_modules/
    • gulpfile.js
    • 構造であります
  • グッ
    • bootstrap.jsグッ/ブートストラップで

は、私はDIRA/gulpfileで

'use strict'; 

global._ = require('lodash'); 
global.gulp = require('gulp'); 
global.$ = require('gulp-load-plugins')(); 
global.argv = require('yargs').argv; 
global.source = require('vinyl-source-stream'); 
global.buffer = require('vinyl-buffer'); 
global.watchify = require('watchify'); 


/** 
* Handle tasks errors 
* @param {Object} err 
*/ 
global.onError = function onError(err) { 
    if (isProd()) { 
    $.util.log($.util.colors.red(err)); 
    process.exit(1); 
    } else { 
    $.util.log($.util.colors.red(err)); 
    this.emit('end'); 
    } 
}; 

/** 
* return true if argv env is prod 
* @return {boolean} 
*/ 
global.isProd = function isProd() { 
    return argv.env === 'prod'; 
}; 

global.isWatch = function() { 
    return !!argv.watch; 
}; 

$.util.log($.util.colors.yellow('Production env: ', isProd())); 
$.util.log($.util.colors.yellow('Watch mode: ', isWatch())); 

及びDIRB/gulpfile等気にいらを有しますgulpfile.jsの先頭にrequire('../gulp/bootstrap');のgulp/bootstrapをインポートしたいと思います。 しかし、node_modules /フォルダを含むフォルダにブートストラップファイルが必要な場合でも、require関数はbootstrap.jsに必要なモジュールを見つけることができません。 gulp /フォルダ内のnode_modules /を検索します...

基本パスを使用するためにはrequireが必要ですか? [process.cwd(), 'node_modules'].join('/');

答えて

0

のようにあなたはbootstrap.jsに次のように試みることができる:

function requireFromCwd(moduleName) { 
    return require([process.cwd(), 'node_modules', moduleName].join('/')); 
} 

global._ = requireFromCwd('lodash'); 
global.gulp = requireFromCwd('gulp'); 
global.$ = requireFromCwd('gulp-load-plugins')(); 
global.argv = requireFromCwd('yargs').argv; 
global.source = requireFromCwd('vinyl-source-stream'); 
global.buffer = requireFromCwd('vinyl-buffer'); 
global.watchify = requireFromCwd('watchify'); 
関連する問題