Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

420
Vistas
RegeneratorRuntime no está definido

Estoy tratando de ejecutar el preprocesador Karma-babel y un generador ES6 sencillo:

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

A partir de esto generé mis archivos de prueba (ES6 => ES5) con babel:

babel src --watch --out-dir tests

Luego ejecuto karma start y obtengo un error:

ReferenceError: regeneratorRuntime no está definido".

Bits relevantes en 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'],

Proyecto completo en github

Puedo usar muchas funciones de ES6, incluidas las flechas. Simplemente no vayas a Generadores.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Node js Env - actualizado en diciembre de 2015

Esta pregunta ya ha sido respondida, vea la respuesta aceptada A MENOS QUE se ejecute dentro del entorno NodeJS.

Si, como yo, tuvo el mismo mensaje de error: 'ReferenceError: regeneratorRuntime is not added' pero estaba ejecutando Babel dentro de un entorno NodeJS, simplemente haciendo lo siguiente probablemente resolverá su problema:

 npm install babel-polyfill --save

Luego, inserte la siguiente instrucción require hacia la parte superior del módulo afectado para obtener el comportamiento requerido (generador):

 require("babel-polyfill");

Esto debería ser todo lo que necesita, simplemente importando el módulo se agrega el comportamiento de polyfill requerido en tiempo de ejecución.

over 4 years ago · Santiago Trujillo Denunciar

0

Similar a la publicación de arcseldon, estaba ejecutando Babel dentro de un entorno NodeJS y recibí el mismo mensaje de error 'ReferenceError: regeneratorRuntime is not added'. Si bien la instalación de babel-polyfill funciona, opté por @babel/plugin-transform-runtime en su lugar.

@babel/plugin-transform-tiempo de ejecución

Debe instalarse de dos maneras... primero como una dependencia de desarrollo:

 npm install --save-dev @babel/plugin-transform-runtime

y segundo como una dependencia de producción:

 npm install --save @babel/runtime

Y luego debe haber una simple adición a su archivo .babelrc:

 { "plugins": ["@babel/plugin-transform-runtime"] }

Estas adiciones brindan la funcionalidad de creación de ES6 sin el ReferenceError.

over 4 years ago · Santiago Trujillo Denunciar

0

Si bien estoy adoptando un enfoque diferente** para usar Karma con Babel en mi proyecto, sospecho que tiene el mismo problema que yo: el relleno múltiple de Babel no se está cargando, por lo que no obtiene la funcionalidad que admite. (incluido el tiempo de ejecución del regenerador personalizado que utiliza Babel para hacer que los generadores funcionen).

Un enfoque sería encontrar una manera de incluir el polyfill, tal vez pasándolo a Karma a través de la matriz de archivos:

 files: [ 'path/to/browser-polyfill.js', // edited: polyfill => browser-polyfill per P.Brian.Mackey's answer ...

Un enfoque alternativo puede ser usar el transformador de tiempo de ejecución de Babel [ editar: al volver a leer los documentos, esto no funcionará a menos que luego explore/webpack/etc. para procesar las llamadas require() creadas por el transformador ]; según sus documentos,

El transformador opcional de tiempo de runtime hace tres cosas:

  • Requiere automáticamente babel-runtime/regenerator cuando usa generadores/funciones asincrónicas.
  • Requiere automáticamente babel-runtime/core-js y asigna métodos estáticos e integrados de ES6.
  • Elimina los ayudantes de babel en línea y utiliza el module babel-runtime/helpers en su lugar.

No tengo experiencia con esto, pero sospecho que lo haría al incluir la optional: ['runtime'] de los documentos de Babel en su configuración de babelPreprocessor , a saber:

 'babelPreprocessor': { options: { optional: ['runtime'], // per http://babeljs.io/docs/usage/options/ sourceMap: 'inline' }, ...

( ** Actualmente estoy usando jspm + jspm-karma + alguna configuración para que Babel polyfill se cargue en SystemJS; pregunte si es relevante y lo expondré).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda