私はnodejsとgulpのものは初めてです。私はすべてのファイルでjslintを実行する必要があるnodejsプロジェクトに取り組んでいます。この目的でgulpを使用しています。
私の問題は、cliでgulpを実行するために、gulpをグローバルにインストールしたくないし、パス変数を更新したくないので、package.jsonファイルを使用してgulpと他のノードモジュールをプロジェクトにローカルにインストールしたことです
cd myproject
npmインストール
Gulpをグローバルにインストールしたくないし、ローカルgulpを実行したいので、 this questionのように、package.jsonファイルにこのようなスクリプトを追加しました
{
"name": "",
"version": "1.0.0",
"main": "index.js",
"private": true,
"dependencies": {
"async": "1.5.0"
},
"devDependencies": {
"gulp": "^3.9.0",
"gulp-jslint": "^0.2.2"
},
"scripts": {
"gulp": "./node_modules/.bin/gulp" // is this correct?
}
}
Myprojectフォルダー内にgulpfile.jsを追加しました
var gulp = require('gulp');
// include plug-ins
var jslint = require('gulp-jslint');
// JS hint task
gulp.task('lint', function() {
gulp.src('./common/srp/*.js')
.pipe(jslint())
.pipe(jslint.reporter('default'));
});
gulp.task("default", ["lint"]);
しかし、今ではmyprojectフォルダー内のコマンドラインで、gulpとgulp lintを実行するとエラーが発生します
user1-VirtualBox:〜/ myproject $ gulp lint
/usr/local/node-v0.10.26-linux-x64/bin/gulpそのようなファイルまたはディレクトリはありません
グローバルノードモジュールでgulpを探しています。
グローバルにインストールしてPATH変数を更新せずに、cliでgulpを実行する方法はありますか。
助けていただければ幸いです
Npmによってインストールされた実行可能ファイルは、node_modules/.bin
にあります。したがって、次を使用してローカルでgulpを実行できます。
./node_modules/.bin/gulp
詳細は コマンド 'gulp'が見つかりません-インストール後 で見つけることができます。
コードを使用すると、コマンドnpm run gulpを実行できるはずです。
してみてください
スクリプトを定義する1つの方法は
"scripts": {
"gulp": "gulp"
}
プロジェクトでgulpコマンドを実行できない場合は、次を実行します
npm link gulp
それはあなたのグローバルなインストールgulpをあなたのローカルプロジェクトにリンクします。それから試して
gulp -v
バージョンが表示されている場合は、これで完了です。これで、必要に応じて任意のgulpコマンドを実行できます。
package.json
で定義されたスクリプトは、NPM、つまりnpm run-script gulp
を介してアクセスされます。プレーンな古いgulp
を実行しようとしていると思いますが、これはグローバルにインストールしなかったためshouldに失敗します。
スクリプトセクションはエイリアスを自動的に作成しませんが、これはあなたの間違いだと思います。毎回入力したくない場合は、自分で定義するか、単純なbashスクリプトを作成できます。
試してください:
path_to_node path_to_gulp_js gulp_task
例:
node\node.exe node_modules\gulp\bin\gulp.js build
ローカルで動作するが、グローバルな感覚を与えるもう1つの代替手段。シェル構成に追加します。つまり、~/.bash_profile
以下 export PATH=$PATH:./node_modules/.bin
source
そのファイルを実行し、rehash
を実行するか、単に新しいシェルを開いてからgulp
(およびそのフォルダー内の他のスクリプト)をグローバルとして利用可能にする必要があります。コマンド。
@snorberhuisが言ったように。 gulpをグローバルに動作させるための唯一の方法は、gukinを手動で呼び出すことで、Jenkins環境で構築しています
Windowsバッチコマンドの実行
cd your-app
npm install gulp
Windowsバッチコマンドの実行
cd your-app\node_modules\.bin
gulp
すべての可能な場所を頭で叩いた後、私がこれをした方法は、単にあなたのアプリケーションに行き、次のようなnpm依存関係をインストールすることです:
1- E:\webra-jenkins\Code\trunk\WebRa.Web>npm install
Npmをインストールしたら、このディレクトリに移動します
2- [%Application_path%]\node_modules\.bin
そして、gulpを実行して、次のようにファイル/タスクを指定します。
3 -[%Application_path%]\node_modules\.bin>gulp gulpfile --tasks
私の場合、次の行を見ました...私は内なる幸福を得ました
18:06:36] Working directory changed to [%Application_path%]
[18:06:37] Tasks for [%Application_path%]\gulpfile.js
これで、タスクを1つずつ実行できます。
[%Application_path%]\node_modules\.bin>gulp pack-vendor-js
プロジェクトをチェックインnode_modules/.bin
フォルダを開き、gulpがそこにあることを確認します。理由を突き止めることができなかったケースがありました。存在しない場合は、ローカルでgulpを再インストールし、表示されるかどうかを確認してください。それがうまくいかず、問題に飽きたら、gulp-cli
パッケージは確実にそれを修正しますが、それはあなたがhaveすることではないはずです。