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.
我有一个简单的 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.