在babel编译时是否有方法注入或忽略全局变量?
Is there any approach to inject or ignore global variables when babel compiling?
我的源代码中有一个__DEVTOOLS__
全局变量。通常我使用webpack DefinePlugin将其定义为布尔值。
new webpack.DefinePlugin({
__DEVTOOLS__: true
})
但是在我的摩卡测试中,我只想使用babel/register
,不想在我的测试中使用wepack。是否有任何方法注入全局变量,就像webpack DefinePlugin或至少忽略全局变量时,它的编译?
我最近遇到了这个问题,并将global.__DEVTOOLS__ = true;
添加到before
块,或在测试中的任何地方,都不适合我。我最终解决了这个问题,创建了一个单独的脚本,通过--require
标志传递给mocha cli。
// config/mocha-setup.js
require('babel-register');
global.__DEVTOOLS__ = true;
然后配置test命令:
// package.json
scripts: {
test: mocha --require ./config/mocha-setup
}
使用Mocha,您可以将属性分配给global
对象,我认为这将实现您想要的:
global.__DEVTOOLS__ = true;
你可以把它放在任何你想要的地方,例如before
块,但如果你已经有一个helper.js
或setup.js
文件,你在测试之前加载,这将是一个很好的地方。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 从Javascript方法返回全局变量
- AngularJS中的封装窗口全局变量
- javascript隐式全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何使全局变量仅特定于该文件
- 在page.open()-PhantomJS中无法访问全局变量
- 使用全局变量来存储数字(JavaScript)
- 如何将变量声明为全局变量
- 在节点中创建文件全局变量
- 在Javascript中使用全局变量作为缓存是很好的
- 创建要在其他函数中使用的全局变量
- 在Jade模板中注入JS全局变量
- 使用脚本加载程序注入的脚本访问全局变量
- 在测试时注入全局变量复制实际对象,需要相同的实例
- 在babel编译时是否有方法注入或忽略全局变量?
- 注入HTML访问Chrome API和全局变量