Sto cercando di eseguire Karma-babel-preprocessor e un dritto generatore avanti ES6:RegeneratorRuntime non è definito
//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);
});
});
Da questo ho generato i miei file di test (ES6 => ES5) con Babel:
babel src --watch --out-dir tests
Poi corro karma start
ottengo l'errore:
ReferenceError: regeneratorRuntime is not defined".
bit rilevanti 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'],
io sono in grado di utilizzare molte funzioni tra cui ES6 frecce. Basta non andare su Generatori.
Ho provato entrambe le opzioni. Nessuno dei due ha funzionato per me. Ho aggiunto 'node_modules/babel/polyfill.js' e Error:' Uncaught ReferenceError: module is not defined'. Credo che si riferisca alla singola riga in questo file che contiene 'module'. Ho aggiunto sempre più directory dir/* .js e ci sono riuscito ancora di più con niente. La seconda opzione che hai elencato sembra non avere alcun impatto, lo stesso errore. –
La tua risposta è molto vicina e certamente mi ha messo sulla strada giusta. Ci sono alcuni problemi, quindi ho inviato una risposta per aiutarli a identificarli. –
Fantastico! Ho modificato il percorso di polyfill nella mia risposta per evitare di confondere gli altri. – Martin