ES6导入和要求不能正常工作与gulp/browserify/babelify

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

本文关键字:工作 gulp browserify babelify 导入 不能 常工作 ES6      更新时间:2023-09-26

我有一个简单的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时,它只是给出一个空对象。同位素应该与需求一起工作。

你知道发生了什么吗?

谢谢。

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

怎么做:

import BabelPolyfill from "babel-polyfill"