摩卡与巴贝尔转移第三方依赖

时间:2017-10-28 12:44:07

标签: reactjs react-native mocha babel native-base

我有一个使用Redux和Redux Saga设置的本机应用程序。 我使用mocha进行单元测试,所有测试都可以正常工作,直到我添加native-base

当我现在测试时,它会抛出此错误

[poject-path]/node_modules/native-base-shoutem-theme/index.js:1
(function (exports, require, module, __filename, __dirname) { import connectStyle from './src/connectStyle';
                                                              ^^^^^^

我有一个关于babel的设置,无论如何我可以转移那种依赖吗?或者在不改变我的代码的情况下做某事?

我目前在我的文件中导致问题的是以下

const Toast = null;
if(process.env.NODE_ENV !== 'test')
    Toast = require('native-base').Toast;

测试与上面的测试一起使用,但我只是测试以确保它通过并且确实通过了,但这并不是一个好方法。

他们的GitHub Repo here

中存在类似的问题

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

  

我有一个关于babel的设置,无论如何我可以转移那种依赖

按照惯例,所有npm模块都应该以移植的形式提供在存储库中,通常是通过执行prepublush脚本和索引链接到dist目录。但通常情况下,babel可以通过在配置中自定义ignore正则表达式来轻松转换任何依赖关系

例如,将webpackbabel-loader一起使用时,使用强制转换MODULE_ONEMODULE_TWO的配置将具有以下视图:

{
    test: /(\.js)$/,
    exclude: /node_modules(?!(?:\/|\\)((MODULE_ONE)|(MODULE_TWO)))/,
    loader: 'babel',
    query: { presets: ['react', 'es2015', 'stage-0'] }
}