Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Gulp Node.js伊斯坦布尔Isparta_Javascript_Node.js_Istanbul_Isparta - Fatal编程技术网

Javascript Gulp Node.js伊斯坦布尔Isparta

Javascript Gulp Node.js伊斯坦布尔Isparta,javascript,node.js,istanbul,isparta,Javascript,Node.js,Istanbul,Isparta,我试图在伊斯坦布尔和伊斯帕塔进行单元测试,但遇到了一些麻烦 实际上,以下是我的吞咽文件任务: gulp.task('pre-test', ['default'], function() { return gulp.src('src/app/**/*.js') .pipe(plumber()) .pipe(istanbul({ instrumenter: isparta.Instrumenter, includeUntested: true })

我试图在伊斯坦布尔和伊斯帕塔进行单元测试,但遇到了一些麻烦

实际上,以下是我的吞咽文件任务:

gulp.task('pre-test', ['default'], function() {
  return gulp.src('src/app/**/*.js')
    .pipe(plumber())
    .pipe(istanbul({
      instrumenter: isparta.Instrumenter,
      includeUntested: true
    }))
    .pipe(istanbul.hookRequire());
});

gulp.task('test', ['pre-test'], function() {
  return gulp.src('src/test/**/*.js')
    .pipe(mocha({reporter: 'spec'}))
    .pipe(istanbul.writeReports({}));
});
当我开始吞咽“测试”任务时,我有以下错误:

[08:34:17] Plumber found unhandled error:
 Error in plugin 'gulp-istanbul'
Message:
    Unable to parse C:\projects\nodejs\mon-notaire\src\app\core\logger\concrete\ConsoleLogger.js

Line 1: Unexpected token

[08:34:17] Finished 'pre-test' after 2.11 s
[08:34:17] Starting 'test'...

stream.js:94
      throw er; // Unhandled stream error in pipe.
            ^
C:\projects\nodejs\mon-notaire\src\test\core\TestConfReader.js:1
(function (exports, require, module, __filename, __dirname) { import ConfReade
                                                              ^^^^^^
SyntaxError: Unexpected reserved word
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Object.Module._extensions.(anonymous function) [as .js] (C:\projects\nodejs\mon-notaire\node_modules\gulp-istanbul\node_modules\istanbul\lib\hook.js:109:37)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at C:\projects\nodejs\mon-notaire\node_modules\mocha\lib\mocha.js:192:27
    at Array.forEach (native)
npm ERR! Test failed.  See above for more details.
如何防止发生这些错误?

此行:

Message:
    Unable to parse C:\projects\nodejs\mon-notaire\src\app\core\logger\concrete\ConsoleLogger.js
这意味着您在ConsoleLogger.js中的代码有问题,因此您可能希望签出该文件

这一行:

C:\projects\nodejs\mon-notaire\src\test\core\TestConfReader.js:1
(function (exports, require, module, __filename, __dirname) { import ConfReade
                                                              ^^^^^^
SyntaxError: Unexpected reserved word
表明您正在使用ES6,但您的gulp任务在运行它之前没有将其传输到ES5,这就是为什么您会出现错误

我已经做了一个例子,它创建了一个项目,正是为了这个目的(在ES6中编写nodeJs项目),并包括使用伊斯坦布尔和源代码映射的代码覆盖率。你可能想看看这个

否则,这是我的发电机


我使用的是伊斯坦布尔,还有一个名为“重新映射伊斯坦布尔”的模块。

您是否设置了
.babelrc

如果您使用的是最新版本的
isparta
,它依赖于babel v6,那么您需要按照如下方式设置
.babelrc
。(您还需要执行
npm安装--保存dev babel-preset-es2015


错误消息表明您正在使用ES6,但默认情况下,
gulp伊斯坦布尔
不支持它

当然,您可以编写函数来编译ES6代码,但是考虑到您使用的是
gulp
,在这种情况下,最简单的方法是使用而不是
gulp
,根本不需要更改上面附加的代码

import istanbul from 'gulp-babel-istanbul'

代码的其余部分保持不变。

来自gulp页面

var isparta = require('isparta');
var istanbul = require('gulp-istanbul');

gulp.src('lib/**.js')
  .pipe(istanbul({
    // supports es6
    instrumenter: isparta.Instrumenter
  }));

我不使用babel.rc,因为我不使用babel命令,但gulp one
。babelrc
不仅适用于babel cli,而且适用于所有依赖于babel核心的工具,如babelify、isparta、gulp的babel模型等。它似乎没有很好的文档记录,但就我在各种环境中尝试的情况而言,它就是这样工作的。这是我使用karma、browserify和isparta的示例设置。如果我删除
.babelrc
,我会得到类似的错误,如上所述。
var isparta = require('isparta');
var istanbul = require('gulp-istanbul');

gulp.src('lib/**.js')
  .pipe(istanbul({
    // supports es6
    instrumenter: isparta.Instrumenter
  }));