javascript - babel 编译时有没有注入(inject)或忽略全局变量的方法?

标签 javascript mocha.js babeljs

我的源代码中有一个__DEVTOOLS__ 全局变量。通常我使用 webpack DefinePlugin 将其定义为 bool 值。

new webpack.DefinePlugin({
    __DEVTOOLS__: true
})

但是在我的 mocha 测试中我只想使用 babel/register 而不想在我的测试中使用 wepack。有没有什么方法可以像 webpack DefinePlugin 一样注入(inject)全局变量,或者至少在编译时忽略全局变量?

最佳答案

我最近遇到了这个问题,将 global.__DEVTOOLS__ = true; 添加到 before block 或测试中的任何地方,对我来说不起作用。我最终解决了这个问题,创建了一个单独的脚本,该脚本通过 --require 标志传递给 mocha cli。

// config/mocha-setup.js

require('babel-register');

global.__DEVTOOLS__ = true;

然后配置测试命令:

// package.json

scripts: {
  test: mocha --require ./config/mocha-setup
}

关于javascript - babel 编译时有没有注入(inject)或忽略全局变量的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32063239/

相关文章:

javascript - 如何使用WebdriverIO和Spectron使用Javascript应用模糊事件

unit-testing - Mocha 测试,before(Each) 没有运行?

javascript - 带有 React : Unexpected token '<' in call to renderToString() 的 SSR

Javascript 日期对象返回 4 月 31 日?

JavaScript 数组错误

javascript - 如何通过将具有相同名称的键的数值加在一起来 $.extend 2 个对象?

node.js - 如何检查元素是否不存在 selenium nodejs

javascript - Babel 可选链

node.js - 加载配置时出错 - 您似乎正在使用 native ECMAScript 模块配置文件 (Jest)

javascript - 传递当前对象键