2017-10-28 247 views
1

我有一个反应原生的应用程序与Redux和Redux传奇安装。 我有单元测试使用摩卡,所有测试用于正常工作,直到我加入native-base摩卡与巴贝尔transpile第三方依赖

现在当我测试,它抛出这个错误

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

我有通天的设置,反正是有,我可以transpile是依赖?或者做一些事情而不改变我的代码?

我目前在我的文件引起该问题所做的是以下

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

测试上述工作,但我只是测试,以确保它可以通过,它没有,但是这不是一个很好的方法来做到这一点。

有一个类似的问题在他们的GitHub库here

谁能帮助?

回答

0

我有通天的设置,反正是有,我可以transpile这种依赖性

按照惯例,所有npm模块应在仓库中transplated形式提供的,通常情况下,通过执行prepublush脚本和索引链接到dist目录。但在一般情况下babel可使用webpackbabel-loader时容易transplate任何相关性,通过在configutation

例如,自定义正则表达式ignore,力transpiling MODULE_ONEMODULE_TWO配置将具有以下观点:

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