ES6 导入并要求无法与 gulp/browserify/babelify 一起正常工作

ES6 imports and require not working properly with gulp/browserify/babelify

我有一个简单的 Gulp 配置来使用 babel 转译我的 javascript :

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

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

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

import "babel-polyfill";

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

其他 npm 模块(例如同位素)也是如此。当我 require 它们时,它只是给出一个空对象。同位素应该与 require 一起工作。

知道发生了什么吗?

谢谢。

做什么:

import BabelPolyfill from "babel-polyfill"

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

解决方案was here.