RegeneratorRuntime ist nicht definiert

Ich versuche zu rennen Karma-Babel-Präprozessor und ein einfacher ES6-Generator:

//require('babel/polyfill');

  describe("how Generators work", function() {
    it("will allow generator functions", function() {
      /*function * numbers() {
        yield 1;
        yield 2;
        yield 3;
      };*/


      let numbers = {
        [Symbol.iterator]:function*(){
            yield 1;
            yield 2;
            yield 3;
          }
      }

      let sum = 0;

      for(n of numbers){
        sum += n;
      }

      expect(sum).toBe(6);
    });
  });

araus habe ich meine Testdateien (ES6 => ES5) mit babel generiert:

babel src --watch --out-dir tests

Dann laufe ichkarma start Ich erhalte die Fehlermeldung:

ReferenceError: regeneratorRuntime ist nicht definiert ".

Relevante Bits in karma.conf.js:

  // list of files / patterns to load in the browser
    files: [
      'test-main.js',
      {pattern: 'tests/*.js', included: true}
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
            'src/*.js': ['babel']
    },
        'babelPreprocessor': {
      options: {
        sourceMap: 'inline'
      },
      filename: function(file) {
        return file.originalPath.replace(/\.js$/, '.es5.js');
      },
      sourceFileName: function(file) {
        return file.originalPath;
      }
    },


// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],

Full Projekt auf Github

Ich kann viele ES6-Funktionen einschließlich Pfeilen verwenden. Nur nein, gehen Sie auf Generatoren.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage