Mocha + Babel + React模块

时间:2015-08-06 09:06:01

标签: javascript reactjs mocha browserify babeljs

如何配置Mocha / Babel还可以在需要时转换node_modules文件夹中的模块?

我正在ES6中开发一个带有反应的应用程序。

我包含了我通过npm install安装的外部反应组件。

当我运行测试(mocha --recursive --compilers js:babel/register)时,测试失败,外部模块出现Unexpected token '<'错误。

原因是外部反应模块在加载时需要进行转换。这在模块package.json中指定,如下所示:

"browserify": {
  "transform": [
    "reactify"
  ]
}

它适用于浏览器。源代码使用browserify -t babelify编译。使用browserify中的package.json信息,并在加载模块时对其进行正确转换。

如何配置Mocha / Babel以将此考虑在内? 或者我如何配置Mocha / Babel以编译node_modules文件夹中的模块?
或者其他任何解决方法?

1 个答案:

答案 0 :(得分:4)

默认情况下,Babel不会转发node_modules目录。如果您要禁用此功能,可以将ignore选项设置为false

在命令行中,您可以将--ignore false传递给babelbabel-node,以允许Babel转换node_modules目录。

对于您的用途,您可以通过Mocha --compilers js:babel/register选项来转换Mocha访问的文件。为了允许Babel的注册挂钩转换node_modules目录,您可以使用.babelrc文件配置Babel。该文件应包含以下内容:{ "ignore": false }

这些选项中的任何一个都应该允许你使用这个外部模块(因为Babel会将其转换出来)。