web-dev-qa-db-ja.com

ローカルにインストールされたgulpがコマンドラインで実行されていませんか?

私は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を実行する方法はありますか。

助けていただければ幸いです

19
user2378417

Npmによってインストールされた実行可能ファイルは、node_modules/.binにあります。したがって、次を使用してローカルでgulpを実行できます。

./node_modules/.bin/gulp

詳細は コマンド 'gulp'が見つかりません-インストール後 で見つけることができます。

23
snorberhuis

コードを使用すると、コマンドnpm run gulpを実行できるはずです。

してみてください

スクリプトを定義する1つの方法は

"scripts": {
      "gulp": "gulp"
    }

プロジェクトでgulpコマンドを実行できない場合は、次を実行します

npm link gulp

それはあなたのグローバルなインストールgulpをあなたのローカルプロジェクトにリンクします。それから試して

 gulp -v

バージョンが表示されている場合は、これで完了です。これで、必要に応じて任意のgulpコマンドを実行できます。

8
Big

package.jsonで定義されたスクリプトは、NPM、つまりnpm run-script gulpを介してアクセスされます。プレーンな古いgulpを実行しようとしていると思いますが、これはグローバルにインストールしなかったためshouldに失敗します。

スクリプトセクションはエイリアスを自動的に作成しませんが、これはあなたの間違いだと思います。毎回入力したくない場合は、自分で定義するか、単純なbashスクリプトを作成できます。

5
thewildandy

試してください:

path_to_node path_to_gulp_js gulp_task

例:

node\node.exe node_modules\gulp\bin\gulp.js build
1
iTake

ローカルで動作するが、グローバルな感覚を与えるもう1つの代替手段。シェル構成に追加します。つまり、~/.bash_profile 以下 export PATH=$PATH:./node_modules/.binsourceそのファイルを実行し、rehashを実行するか、単に新しいシェルを開いてからgulp(およびそのフォルダー内の他のスクリプト)をグローバルとして利用可能にする必要があります。コマンド。

1

@snorberhuisが言ったように。 gulpをグローバルに動作させるための唯一の方法は、gukinを手動で呼び出すことで、Jenkins環境で構築しています

Windowsバッチコマンドの実行

cd your-app
npm install gulp

Windowsバッチコマンドの実行

cd your-app\node_modules\.bin 
gulp
1
Daniel Orlan

すべての可能な場所を頭で叩いた後、私がこれをした方法は、単にあなたのアプリケーションに行き、次のような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
0
xikandar hayyat

プロジェクトをチェックインnode_modules/.binフォルダを開き、gulpがそこにあることを確認します。理由を突き止めることができなかったケースがありました。存在しない場合は、ローカルでgulpを再インストールし、表示されるかどうかを確認してください。それがうまくいかず、問題に飽きたら、gulp-cliパッケージは確実にそれを修正しますが、それはあなたがhaveすることではないはずです。

0
Tobin Bradley