Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

384
Views
Karma, PhantomJS y promesas es6

Estoy escribiendo una biblioteca de JavaScript que usa las nuevas promesas de es6. Puedo probar la biblioteca en Firefox porque las promesas están definidas. Sin embargo, cuando trato de probar mi código con Karma y PhantomJS, aparece el error Can't find variable: Promise. . Supongo que esto se debe a que el navegador PhantomJS aún no es compatible con las promesas de es6.

¿Cómo puedo configurar Karma para traer el polyfill para promesas?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede extraer el polyfill de Babel simplemente instalando Babel Polyfill :

 npm install --save-dev babel-polyfill

y luego incluya el archivo polyfill antes de su fuente y pruebe los archivos dentro de la sección de files de su karma.conf.js :

 files: [ 'node_modules/babel-polyfill/dist/polyfill.js', 'index.js', //could be /src/**/*.js 'index.spec.js' //could be /test/**/*.spec.js ],

A menos que sepa que todos sus navegadores de destino son compatibles con Promises, probablemente también desee aplicar este polyfill a su compilación publicada.

Si se siente realmente aventurero, puede usar Browserify para extraer archivos para que sus pruebas sean más modulares y luego usar Babelify para transpilar ES6 a ES5. Creé un proyecto de muestra con estos y una prueba de trabajo que involucra una Promesa (que se ejecuta en PhantomJS2) como referencia .

over 4 years ago · Santiago Trujillo Report

0

Para Babel 6, necesitamos instalar babel-polyfill para respaldar la promesa.

npm install --save-dev babel-polyfill

y agregue una línea en karma.conf.js dentro de la sección de files

 files: [ 'node_modules/babel-polyfill/dist/polyfill.js', .... ]

Está bien documentado en https://github.com/babel/karma-babel-preprocessor#polyfill

over 4 years ago · Santiago Trujillo Report

0

como correctamente señaló el autor, no es capaz de reconocer la promesa de es6. Para cargarlo, el módulo es6-promise se puede cargar con la ayuda de webpack.ProvidePlugin y configurarlo dentro de la matriz de complementos de webpack.

 plugins: [ new webpack.ProvidePlugin({ 'Promise': 'es6-promise' }) ]

¡Esto parece funcionar para mí!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!