ES 2015 VS 2015 for node.js运行任务运行器资源管理器

时间:2016-11-21 16:18:35

标签: node.js visual-studio-2015 gulp task-runner-explorer

我在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 explorer的输出中。

我安装了最新版本的Node.js,并且在命令行之外它运行良好。

我的节点路径设置为指向./node_modules/.bin

我使用node -v检查了包管理器控制台,看来我正在使用最新的节点版本。

那么如何通过任务管理器控制正在使用的Node版本。我想用ES2015来编译我的模块吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

听起来你正在使用旧版本的Node.js。

我发现这个github票据建议在你的gulp脚本中添加以下内容,以显示你正在运行的节点版本。

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

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

您可以转到Tools > Options > Projects and Solutions > External Web Tools找出VS所使用的节点版本所在的位置。

此问题有一个相当优雅的解决方案,即将“$(PATH)”条目移至顶部:Gulp task failing when run from VS 2015 Task Runner explorer, but not from command prompt