Javascript Browserify standalone选项没有';是否直接用指定的名称包装代码?

Javascript Browserify standalone选项没有';是否直接用指定的名称包装代码?,javascript,gulp,ecmascript-6,browserify,Javascript,Gulp,Ecmascript 6,Browserify,我尝试使用gulp、browserify、watchify和babelify编译一个独立的js模块。 选项如下所示: const browserifyOpts = { debug: true, entries: path.join('src', 'index.js'), standalone: 'Goo', transform: [ 'babelify', ], }; 我的JS模块如下: export default class Goo { constructo

我尝试使用gulp、browserify、watchify和babelify编译一个独立的js模块。 选项如下所示:

const browserifyOpts = {
  debug: true,
  entries: path.join('src', 'index.js'),
  standalone: 'Goo',
  transform: [
    'babelify',
  ],
};
我的JS模块如下:

export default class Goo {
  constructor() {
    this.a = 'hello';
  }
}
它编译得很好。但当我将其包含在html文件的脚本标记中时,Goo模块被包装在window.Goo.default中,也就是说,我不能直接使用:

new Goo();
但必须使用:

new Goo.default();
知道哪里出了问题吗?
谢谢

默认情况下,Babel 6以不同的方式处理默认模块导出。如果你想使用旧版本,你可以使用插件

要么将其添加到您的
.babelrc
,要么将其作为选项添加到Babelify中

更多信息请参见:

与巴贝尔处理默认导出的新方式有关。如果你不 如果要引用默认密钥,则需要使用此 插件:


默认情况下,Babel 6以不同的方式处理默认模块导出。如果你想使用旧版本,你可以使用插件

要么将其添加到您的
.babelrc
,要么将其作为选项添加到Babelify中

更多信息请参见:

与巴贝尔处理默认导出的新方式有关。如果你不 如果要引用默认密钥,则需要使用此 插件:


最简单的方法是让
index.js
文件包含如下内容,自己包装

module.exports = require('./main').default;
并将当前的
index.js
移动到
main.js
。那你就准备好了


正如另一个答案所说,您可以潜在地使用,但这不是我通常推荐的,因为虽然它解决了这个问题,它还引入了这样一种可能性,即您可能会意外地编写工作正常但不符合规范的导入/导出对。

最简单的方法是让您的
index.js
文件包含以下内容来包装它

module.exports = require('./main').default;
并将当前的
index.js
移动到
main.js
。那你就准备好了

正如另一个答案所说,您可以潜在地使用,但这不是我通常推荐的,因为虽然它解决了这个问题,但也引入了一种可能性,即您可能会意外地编写可以工作但不符合规范的导入/导出对