gpt4 book ai didi

javascript - RegeneratorRuntime 未定义

转载 作者:IT王子 更新时间:2023-10-29 03:17:54 28 4
gpt4 key购买 nike

我正在尝试运行 Karma-babel-preprocessor和一个直接的 ES6 生成器:

//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);
});
});

由此我用 babel 生成了我的测试文件(ES6 => ES5):

babel src --watch --out-dir 测试

然后我运行 karma start 我得到错误:

ReferenceError: regeneratorRuntime is not defined".

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 project on github

我能够使用许多 ES6 功能,包括箭头。只是不要继续生成器。

最佳答案

Node js Env - 2015 年 12 月更新

此问题已得到解答,除非在 NodeJS 环境中运行,否则请参阅已接受的答案。

如果像我一样,您遇到了相同的错误消息:'ReferenceError: regeneratorRuntime is not defined' 但在 NodeJS 环境中运行 Babel,那么简单地执行以下操作可能会解决您的问题:

npm install babel-polyfill --save

然后在受影响模块的顶部插入以下 require 语句以获得所需的(生成器)行为:

require("babel-polyfill");

这应该是您所需要的,只需导入模块即可在运行时添加所需的 polyfill 行为。

关于javascript - RegeneratorRuntime 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28976748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com