1

VS 2015 に ASP.NET 5 プロジェクトがあります。gulp タスクをセットアップしており、gulp-chmod モジュールを使用しています。これにより、コピー プロセスで TFS によって設定された読み取り専用プロパティを削除できます。私は VS 2015 で以前にこのモジュールの v1.3 を正常に使用しましたが、新しいバージョン v2.0 は特に ES 2015 機能を使用するようにアップグレードされました。

使用上のご注意constlet

 'use strict';
 const through = require('through2');
 const deepAssign = require('deep-assign');
 const Mode = require('stat-mode');

 const defaultMode = 0o777 & (~process.umask());

 function normalize(mode) {
      let called = false;const through = require('through2');
      const deepAssign = require('deep-assign');
      ...

エラーが発生します:

cmd.exe /c gulp --tasks-simple <MY_PATH>\node_modules\gulp-chmod\index.js:2 const through = require('through2'); ^^^^^ SyntaxError: Use of const in strict mode. at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (<MYPATH>\gulpfile.js:9:13) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12)

Task Runner エクスプローラーからの出力。

Node.js の最新バージョンがインストールされており、コマンド ラインを使用していなくても問題なく動作します。

ノードパスが指すように設定されています./node_modules/.bin

を使用してパッケージ マネージャー コンソールにチェックインしましたがnode -v、最新のノード バージョンを使用しているようです。

では、タスク マネージャーを使用して使用中の Node バージョンを制御するにはどうすればよいでしょうか。モジュールをコンパイルするために ES2015 を使用したいですか?

前もって感謝します

4

1 に答える 1

2

古いバージョンの Node.js で実行しているようです。

実行しているノードのバージョンを表示するために、gulp スクリプトに以下を追加することを提案するこの github チケットを見つけました。

https://github.com/sindresorhus/gulp-imagemin/issues/178

console.log('Node version: ' + process.version);

に移動しTools > Options > Projects and Solutions > External Web Toolsて、VS が使用しているノードのバージョンが存在する場所を確認できます。

この質問には、「$(PATH)」エントリを一番上に移動するというかなり洗練された解決策があります: VS 2015 Task Runner エクスプローラーから実行すると Gulp タスクが失敗しますが、コマンド プロンプトからではありません

于 2016-11-21T16:37:35.267 に答える