私は通常、npmを介してgulpを実行します私のpackage.jsonで
"scripts": {
"test": "gulp test",
"minify": "gulp minify"
}
その後、次のようなコマンドを実行できます
npm run minify
どちらでも構いませんが、gulpfileに新しいタスクを追加するたびに、scriptsセクションの下のpackage.jsonにそれらを追加する必要があります。
理由:path
にnpmのみをグローバルにインストールするので、他のすべてのモジュールがpath
を汚染しないため、npm
を介して実行する必要があります。スクリプト
あなたのために御Have走を得ましたか:私は先に行き、これを処理するためにあなたに簡単なnpmモジュールを作りました。
その要点は次のとおりです。
var file = fs.readFileSync(config.path || 'package.json', 'utf-8');
var pkg = JSON.parse(file);
var tasks = gulp.tasks;
pkg.scripts = pkg.scripts || {};
Object.keys(tasks).forEach(function (t) {
pkg.scripts[t] = 'gulp '+tasks[t].name;
});
完全なソース は、同じインデントとものでpackage.jsonを書き戻すようなことをします。
ええ、先に進みます:npm install --save-dev gulp-npm-script-sync
これをgulpfileに貼り付けます:
var gulp = require('gulp');
var sync = require('gulp-npm-script-sync');
// your gulpfile contents
sync(gulp);
新しいタスクでgulpfileを更新するたびに、package.jsonが更新されます。
Gulpタスク内にスローすることもできます:
gulp.task('sync', function () {
sync(gulp);
}
ブライアンブレナンは、 素晴らしい提案 :
./node_modules/.bin
変数に$PATH
を追加しました。 プロジェクトのトップディレクトリにいる限り、ローカルにインストールされたユーティリティを実行できます。
ソース: Keeping clean 。
パッケージを簡単に呼び出すことができるように、パッケージをグローバルにインストールする必要はありません。上記のパスはprependedであることを忘れないでください。
または、バージョン2.0.0以降、npm
はrunコマンドに追加のパラメーターを渡す機能を提供します。これらの引数は、単にスクリプトコマンドに追加されます。
あなたの場合、package.json
からの次のスクリプト:
"scripts": {
"gulp": "gulp"
},
npm run gulp -- test
、またはnpm run gulp -- minify
などとして呼び出すことができます。