web-dev-qa-db-ja.com

Gulp-throwerrはモジュール 'q'を見つけることができません

Gulpを使用してJekyllをセットアップしようとしましたが、gulpを実行すると、次のエラーが発生します。

_C:\Users\Admin\jekyll-gulp-sass-browser-sync-master>gulp
module.js:339
    throw err;
    ^

Error: Cannot find module 'q'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\Admin\jekyll-gulp-sass-browser-sync-master\node_modules\browser-sync\node_modules\portscanner-plus\lib\index.js:3:9)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
_

_C:\Users\Admin\jekyll-gulp-sass-browser-sync-master\node_modules\gulp\node_modules\interpret\index.js_に移動して、次の変更を加えました。

var q = require('q');

var q = require('Q');

_npm install -g_を実行しましたが、まだ何も実行していません。なぜ私がこれを手に入れているのか誰か知っていますか?

8
hassanyf

インストールコマンドのnpmヘルプセクションを見てください(ターミナルでnpm help installと入力してください)。

これがあなたがしていることです:

  • npm install(パッケージディレクトリ内、引数なし):

    ローカルのnode_modulesフォルダーに依存関係をインストールします。グローバルモード(つまり、コマンドに-gまたは--globalを追加)では、現在のパッケージコンテキスト(つまり、現在の作業ディレクトリ)をグローバルパッケージとしてインストールします。デフォルトでは、npminstallは依存関係としてリストされているすべてのモジュールをインストールします。 --productionフラグを使用すると(またはNODE_ENV環境変数がproductionに設定されている場合)、npmはdevDependenciesにリストされているモジュールをインストールしません。

これがあなたがしたいことです:

  • npm install [@ /] [--save | --save-dev | --save-optional] :

    @インストールを実行します。ここで、は「タグ」構成です。 (npm help 7 npm-configを参照してください。)ほとんどの場合、これにより、npmで公開されているモジュールの最新バージョンがインストールされます。

npm install -gと入力すると、現在のパッケージコンテキストが、現在の問題とは関係のないグローバルパッケージとしてインストールされます。エラーCannot find module 'q'は、qモジュールがインストールされていないことを意味します。

これを解決するには、次のように入力します。npm install qこれはqモジュールをプロジェクトディレクトリにローカルにインストールします。

11
ezpn