如何在gulpfile.js中使用babel-polyfill
在巴贝尔文件中,他们只是说包括import "babel-polyfill";
所以,我可以使用ES6生成器,但是,当我包括在我的gulpfile.js行后,我仍然产生一个exception: Uncaught ReferenceError: regeneratorRuntime is not defined
这是我的gulpfile.js
import 'babel-polyfill'; var gulp = require("gulp"), babel = require("gulp-babel"), concat = require('gulp-concat'), rename = require('gulp-rename'), uglify = require('gulp-uglify'); gulp.task("babel", function() { return gulp.src(jsSrc) .pipe(concat('Main.js')) .pipe(babel()) .pipe(gulp.dest(jsDest)) .pipe(rename('Main-min.js')) .pipe(uglify()) .pipe(gulp.dest(jsDest)); });
jsSrc
有maines6.js
和其他.js
文件。 在maines6.js
这里是我的发电机:
function* anotherGenerator(i) { yield i + 1; yield i + 2; yield i + 3; }
我不知道如何使用这个..你能帮我吗?
既然你只是使用gulp而不是某种模块捆绑器(例如webpack)
您应该遵循本指南https://github.com/babel/gulp-babel#runtime
npm install --save-dev babel-plugin-transform-runtime
然后像这样使用它
.pipe(babel({ plugins: ['transform-runtime'] }))
应该做的伎俩:)
编辑:
似乎babel-plugin-transform-runtime添加需要调用转换的文件,所以我想你将需要使用模块加载器。 我会build议webpack,虽然有像browserify和jspm的替代。
你需要
npm install -g webpack npm install babel-loader babel-core babel-polyfill babel-preset-es2015 --save-dev
然后你需要创build一个webpack.config.js文件。 这是一个非常原始的设置。
module.exports = { context: __dirname + '/app', entry: ['babel-polyfill', './entries/index.js'], output: { path: 'dist', filename: '[name].js' }, module: { loaders: [ { test: /\.js/, exclude: /node_modules/, loader: 'babel', query: { presets: ['es2015'] } } ] } };
上面的configuration文件结构应该像这样look
project/ node_modules/ app/ entries/ main.js dist/ main.js webpack.config.js package.json
然后从命令行运行webpack
。 如果你想得到缩小版本运行webpack -p
包括你需要在你的应用程序的入口点顶部的polyfill。
import 'babel/polyfill'
将需要在jsSrc入口文件的顶部