ES6导入并要求无法正常使用gulp / browserify / babelify

时间:2016-08-29 16:21:56

标签: javascript gulp browserify babeljs babel-polyfill

我有一个简单的Gulp配置来与babel转换我的javascript:

- (dispatch_queue_t)methodQueue
{
    return dispatch_get_main_queue();
}

有了这个,我可以导入我的开发文件。 但是我不能导入一些用npm安装的包(同位素,textfit,babel-polyfill ......)。

例如,如果我在index.js文件中导入babel-polyfill:

gulp.task('js_dev', function () {
    var bundler = browserify({entries: ['js/index.js'], debug: true});
    bundler.external('jquery');
    return bundler
        .transform("babelify", {presets: ["es2015"]})
        .bundle()
        .on('error', function (err) {
            console.error(err);
            this.emit('end');
        })
        .pipe(source('dev.js'))
        .pipe(gulp.dest(jsdest));
});

gulp没有错误,代码似乎在dev.js中添加,但是它不起作用,我也不能要求它:它给出一个空的Object。

其他npm模块(例如同位素)也是如此。当我import "babel-polyfill"; 时,它只会给出一个空对象。 Isotope应该与require一起使用。

知道发生了什么事吗?

感谢。

2 个答案:

答案 0 :(得分:1)

好吧,我找到了。 我的JavaScript文件已添加到已使用AMD / Require.js的CMS中。这与browserify冲突。

解决方案here it has been explained

答案 1 :(得分:0)

做什么:

import BabelPolyfill from "babel-polyfill"