2017-10-28 249 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'] } 
}