我在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 explorer的输出中。
我安装了最新版本的Node.js,并且在命令行之外它运行良好。
我的节点路径设置为指向./node_modules/.bin
我使用node -v
检查了包管理器控制台,看来我正在使用最新的节点版本。
那么如何通过任务管理器控制正在使用的Node版本。我想用ES2015来编译我的模块吗?
提前致谢
答案 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