2016-06-27 15 views
4

Ich benutze browserify + gulp + babel in meinem Projekt und habe Probleme mit ES7-Funktionen. Diese sind, was ich installiert:babel ES7 Async - RegeneratorRuntime ist nicht definiert

und dies ist mein gulp Code:

gulp.task('build',() => { 
    let buildPath; 
    let destPath; 

    buildPath = `./src`; 
    destPath = `./dist`; 

    return browserify(`${buildPath}/app.js`) 
    .transform(babelify, { 
     presets: ["es2015", "es2016", "stage-0"], 
     plugins: ["transform-decorators-legacy", "transform-async-to-generator"] 
    }) 
    .bundle() 
    .pipe(source('app.js')) 
    .pipe(buffer()) 
    .pipe(sourcemaps.init({loadMaps: true})) 
    .pipe(sourcemaps.write('./')) 
    .pipe(gulp.dest(`${destPath}`)); 
}); 

und das ist mein Js-Code:

import 'babel-polyfill'; 

// Async Functions 
function wait(t) { 
    return new Promise((r) => setTimeout(r, t)); 
} 

async function asyncMania() { 
    console.log('1'); 
    await wait(1000); 
    console.log('2'); 
} 

asyncMania().then(() => console.log('3')); 

Wenn ich dies versuchen, wird eine Fehlermeldung:

Uncaught ReferenceError: regeneratorRuntime is not defined

Mit erfordern statt Import funktioniert auch nicht. Die meisten Fragen verwenden Webpack, nicht browserifizieren und andere Ansätze wurden nicht an mir bearbeitet, so dass es sehr dankbar sein wird, mir zu sagen, wie ich es tun soll.

Und ich habe noch eine Frage, wie Sie sehen können, ich installiert babel-preset-es2015 und babel-preset-es2016 beide, und beide verwenden. Wenn ich es2015 Plugin entferne, kann ich noch ES6 Funktionen verwenden? Und auch ich habe babel-preset-stage-0, und wie ich weiß, ist dies für experimentelle ES7-Funktionen. Was eigentlich babel-preset-es2016 bekam?

+0

I installiert ** transformations Regenerator ** Plugin und ** transformations Asynchron-Funktionen **, immer noch nicht funktionieren. :( – modernator

Antwort