1

我在 VS 2015 中有一个 ASP.NET 5 项目。我正在设置我的 gulp 任务,我正在使用 gulp-chmod 模块。这允许我删除 TFS 在我的复制过程中设置的只读属性。我之前在 VS 2015 中成功使用过此模块的 v1.3,但是新版本 v2.0 已升级为专门使用 ES 2015 功能:

注意使用const,let

 '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。

我发现这个 github ticket 建议将以下内容添加到您的 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 failed when run from VS 2015 Task Runner explorer, but not from command prompt

于 2016-11-21T16:37:35.267 回答