Javascript Browserify standalone选项没有';是否直接用指定的名称包装代码?
我尝试使用gulp、browserify、watchify和babelify编译一个独立的js模块。 选项如下所示: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
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
。那你就准备好了
正如另一个答案所说,您可以潜在地使用,但这不是我通常推荐的,因为虽然它解决了这个问题,但也引入了一种可能性,即您可能会意外地编写可以工作但不符合规范的导入/导出对