如何配置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
文件夹中的模块?
或者其他任何解决方法?
答案 0 :(得分:4)
默认情况下,Babel不会转发node_modules
目录。如果您要禁用此功能,可以将ignore
选项设置为false
。
在命令行中,您可以将--ignore false
传递给babel
或babel-node
,以允许Babel转换node_modules
目录。
对于您的用途,您可以通过Mocha --compilers js:babel/register
选项来转换Mocha访问的文件。为了允许Babel的注册挂钩转换node_modules
目录,您可以使用.babelrc
文件配置Babel。该文件应包含以下内容:{ "ignore": false }
。
这些选项中的任何一个都应该允许你使用这个外部模块(因为Babel会将其转换出来)。