2016-06-27 128 views
4

我使用browserify +一口+巴別在我的項目,以及具有ES7功能問題regeneratorRuntime沒有定義。這些都是我裝什麼:巴貝爾ES7異步 -

,這是我吞代碼:

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

,這是我的js代碼:

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')); 

當我嘗試這一點,得到一個錯誤:

Uncaught ReferenceError: regeneratorRuntime is not defined

使用需要代替進口也不起作用。大多數問題都使用Webpack,而不是瀏覽器,其他方法都不適用於我,因此,非常感謝您告訴我該怎麼做。

而且我有一個問題,你可以看到,我安裝了巴貝爾預設-ES2015和巴貝爾預設-es2016兩者,兩者都使用。如果我刪除es2015插件,我還可以使用ES6功能嗎?而且我還包括babel-preset-stage-0,並且據我所知這是針對實驗性ES7功能的。實際上babel-preset-es2016得到了什麼?

+0

我裝**變換再生**插件和**變換異步函數**,仍然不起作用。 :( – modernator

回答