从Visual Studio 2015任务运行器运行Gulpfile时出错

pet*_*erc 1 visual-studio node.js typescript gulp

我正在构建一个gulpfile,用于我的aps.net winforms项目.到目前为止,我在package.json中有以下内容

{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
  "browserify": "^13.1.0",
  "del": "2.2.0",
  "gulp": "^3.9.1",
  "gulp-sourcemaps": "^2.2.0",
  "gulp-typescript": "^3.0.2",
  "tsify": "^2.0.2",
  "vinyl-source-stream": "^1.1.0"
 }
}
Run Code Online (Sandbox Code Playgroud)

和gulp文件有

/// <binding BeforeBuild='default' />
/*
 This file in the main entry point for defining Gulp tasks and using Gulp      plugins.
  Click here to learn more. http://go.microsoft.com/fwlink/?LinkId=518007
*/

var gulp = require('gulp');

var del = require('del');
var ts = require("gulp-typescript");
var tsProject = ts.createProject("tsconfig.json");
var sourcemaps = require('gulp-sourcemaps');

gulp.task('default', function () {
  // place code for your default task here
});
Run Code Online (Sandbox Code Playgroud)

我的节点版本是6.9.1

如果我从命令行('gulp')运行它,它工作正常.但是在Visual Studio任务运行器中,它无法加载,并且在输出中我看到以下错误.添加该行后,此错误开始var sourcemaps = require('gulp-sourcemaps');

 Failed to run "H:\dev\myproj\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
H:\dev\myproj\node_modules\gulp-sourcemaps\node_modules\strip-bom\index.js:2
module.exports = x => {
                    ^
SyntaxError: Unexpected token >
    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> (H:\dev\myproj\node_modules\gulp-sourcemaps\src\init.js:10:14)
    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)
Run Code Online (Sandbox Code Playgroud)

还添加var tsify = require("tsify");我得到另一个错误...

Failed to run "H:\dev\myproject\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
TypeError: Object #<Object> has no method 'debuglog'
    at Object.<anonymous> (H:\dev\myproject\node_modules\tsify\index.js:4:32)
    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)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (H:\dev\myproject\gulpfile.js:17:13)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法,为什么我得到这个?

提前致谢!

pet*_*erc 5

我的问题是我没有意识到Visual Studio有自己的(过时的)版本的节点工具(安装在Visual Studio文件夹的某个地方).多么不整洁!

为了使它使用"全局"节点工具,我可以进入菜单Tools | 选项| 项目和解决方案| 外部Web工具并移动$(PATH)$(DevEnvDir)\*位置之前.在我这样做之后,我的Gulp文件会加载.

另一个选项可能是通过Tools |更新Visual Studio节点工具 扩展和更新,但(我认为)我更喜欢使用我将在Visual Studio之外使用的相同外部工具.