コードを少し整理するためgulpfile.js
に、/gulp
フォルダー内のいくつかのファイルに分割しました。しかし、ここdebug (boolean)
で、含まれているgulpコマンドの動作を切り替えるファイルに変数を渡したいと思います(最終的にはコマンドライン引数を使用しますが、今のところは変数で機能させたいだけです)。
ヨーマンangular / gulpパッケージで見た方法を使用してこの設定を行う方法は、require-dir
(/gulp
フォルダー内のすべての* .jsファイルをロードするnpmモジュールを使用することです。各ファイルには、一連のgulpタスクがあります。セットする)。
gulpfile.js:
var gulp = require('gulp'),
run = require('run-sequence'),
debug = true;
require('require-dir')('./gulp');
gulp.task('default', ['build', 'server', 'watch', '...']);
これは次のようなものをロードします...
gulp / build.js:
var gulp = require('gulp'),
plumber = require('gulp-plumber'),
...;
gulp.task('build', function () {
console.log(debug);
});
そのgulp
ため、default
タスクを実行するコマンドを実行すると、build.jsが読み込まれ、gulpbuild
タスクが実行されます。しかし、残念ながら、それdebug
は未定義を返すようです。
どうすればこれを機能させることができますか?
just module.exports()
and nodeのrequire()
メソッドを使用することを検討していましたが、インクルードされたファイル内でgulpタスクを取得して宣言し、メインgulpfile.js
ファイルから(目的の順序で)実行できるようにする方法がわかりませんでした。
誰かが何か援助を提供できますか?ありがとう
本当に、通常のモジュールの方法。そのgulp/build.js
ファイルを、実際には何もエクスポートしないことから、適切な必須モジュールに変更するだけです。
module.exports = function(debug) {
"use strict";
var gulp = require('gulp'),
plumber = require('gulp-plumber'),
...;
gulp.task('build', function () {
console.log(debug);
});
};
次に、メインファイルで次のように呼び出します。
...
var loadGulp = require('require-dir/gulp');
...
var debug = true;
loadGulp(debug);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加