Kurz gesagt funktioniert meine vorhandene React Native App ohne .bablerc, ich kann Jest nur mit einem .babelrc arbeiten (da ich es6 Syntax benutze), und sobald ich den .babelrc meine native App reagieren bricht mit dem folgenden Fehler.Jest Fehler ohne .babelrc Reagiere native Fehler damit
Nach der Zugabe von .babelrc mir mehr [BABEL] Notizen in meinen reagieren nativen Server sehen, die ohne die .babelrc nicht da sind. Hier ist ein Beispiel (I entfernt Weg vor node_modules), obwohl ich glaube nicht, dass dies ein Problem ist
[BABEL] Note: The code generator has deoptimised the styling of "/node_modules/react-native-htmlview/vendor/htmlparser2.js" as it exceeds the max of "100KB".
Gibt es eine Möglichkeit, die „reagieren-native“ .babelrc Presets nur mit Scherz laufen zu isolieren? Gibt es eine einfachere Lösung, die ich vermisse, um sowohl Spaß zu haben als auch zu reagieren, Seite an Seite zu arbeiten? Gibt es zusätzliche Voreinstellungen in .babelrc, die ich für eine native Umsetzung brauche?
Ich bin auf reagieren nativer 0.29.0 und hier meine .babelrc und package.json
.babelrc
{
"presets": ["react-native"]
}
package.json
{
"name": "MyApp",
"version": "0.0.1",
"private": true,
"scripts": {
"test": "jest",
"start": "node node_modules/react-native/local-cli/cli.js start",
},
"dependencies": {
"base-64": "^0.1.0",
"keymirror": "^0.1.1",
"lodash": "^4.13.1",
"moment": "^2.13.0",
"ramda": "^0.21.0",
"react": "^15.1.0",
"react-native": "^0.29.0",
"react-native-animatable": "^0.6.1",
"react-native-button": "^1.6.0",
"react-native-collapsible": "^0.7.0",
"react-native-cookies": "git://github.com/sdg9/react-native-cookies",
"react-native-drawer": "^2.2.3",
"react-native-htmlview": "^0.5.0",
"react-native-material-design": "^0.3.6",
"react-native-material-kit": "^0.3.2",
"react-native-router-flux": "^3.30.0",
"react-native-scrollable-tab-view": "^0.5.2",
"react-native-shared-preferences": "0.0.5",
"react-native-simple-store": "^1.0.1",
"react-native-spinkit": "^0.1.2",
"react-native-swiper": "^1.4.5",
"react-native-vector-icons": "^2.0.3",
"react-redux": "^4.4.5",
"react-thunk": "^1.0.0",
"redux": "^3.5.2",
"redux-actions": "^0.10.0",
"redux-logger": "^2.6.1",
"redux-thunk": "^2.1.0",
"tcomb-form-native": "^0.5.1",
"underscore": "^1.8.3"
},
"devDependencies": {
"babel-eslint": "^6.1.2",
"babel-jest": "^13.2.2",
"babel-polyfill": "^6.9.1",
"eslint": "^3.0.1",
"eslint-plugin-react": "^5.2.2",
"eslint-plugin-react-native": "^1.1.0",
"flow-bin": "^0.28.0",
"jest-cli": "^13.2.3",
"regenerator": "^0.8.46",
"regenerator-runtime": "^0.9.5",
"remote-redux-devtools": "^0.3.3"
},
"jest": {
"haste": {
"defaultPlatform": "ios",
"platforms": [
"ios",
"android"
],
"providesModuleNodeModules": [
"react-native"
]
}
}
}
Vielen Dank das ist hilfreich. Ich bin fast da, aber ich benutze Es6 Import-Aussagen, die scherzt, sogar mit jest.disableAutomock(). Ich habe bestätigt, wenn ich auf require() umwechseln will, funktioniert es aber ich bin 1 Import down 1843 zu gehen und würde lieber einen Weg finden, meine es6-Import-Syntax beizubehalten. Ich kann Jest mit ES6-Import-Syntax bestätigen funktioniert mit .babelrc Definition "react-native" Voreinstellung, aber das bringt mich zurück auf Platz eins, wie es meine Anwendung bricht. Hast du eine Idee, wie man es6 importieren kann, um mit Spaß zu arbeiten, ohne .babelrc zu benutzen? – Steven
Es ist weil Jest im Wesentlichen monkeypat die 'require' Funktion (ich finde das nervig, um ehrlich zu sein). Versuchen Sie '' automock ': false, 'als Schlüssel in Ihrer Jest-Konfiguration in Ihrem Paket.json. Aus irgendeinem Grund funktioniert das Ausschalten von automocking global in der Konfiguration mit es6-Importen, während 'jest.disableAutomock()' Aufrufe in tatsächlichen Unit-Tests nicht funktionieren. –
Danke, dass es mit deiner Hilfe funktioniert hat, aber am Ende fühlte sich der Scherz so knifflig (und lief wirklich langsam), so dass ich am Ende mit einem [Mokka-Ansatz] (https://blog.formidable.com/unit-testing) umgestiegen bin -react-native-mit-Mocha-und-Enzym-51518f13ba73 # .erhyf3s2n) – Steven