2016-09-28 7 views
0

Ich arbeite an einer React-Webanwendung, die eine Komponentenbibliothek verwendet, die wir als npm-Modul enthalten. Da ich zur gleichen Zeit an der Bibliothek und der Webapp arbeite, habe ich die Bibliothek als Modul in npm verlinkt.Jest Ignoriere die Antwort-Peer-Abhängigkeit im verknüpften Modul

Die Verzeichnisse sind wie folgt aufgebaut:

~/Development/ 
| 
|-- myWebapp/ 
| |-- package.json # (react included here as dependency) 
| |-- src/ 
| |-- node_modules/ 
|  |-- jest-cli/ 
|  |-- react/ 
|  |-- myLibrary/ -> /usr/local/lib/node_modules/myLibrary 
| 
|-- myLibrary/  # (linked to /usr/local/lib/node_modules by npm link) 
| |-- package.json 
| |-- src/ 
| |-- node_modules/ 
|  |-- react/ # (included as a devDependency and peerDependency) 

ich meine Tests in Jest (0.8.2) zu schreiben.

Ich versuche, Jest zu konfigurieren, React nicht aus myLibrary/node_modules/react zu laden, wenn ich Tests für myWebapp durchführe. Laden Reaktiv zweimal führt zu Problemen. Meine Tests bestehen, wenn ich sie vor dem Ausführen von rm -r myLibrary/node_modules/react, aber es ist ein Schmerz zu deinstallieren und neu zu installieren Reagieren die ganze Zeit.

Ich versuchte Jest zu konfigurieren mit:

..., 
"modulePathIgnorePatterns": [ 
    "<rootDir>/node_modules/myLibrary/node_modules/react" 
], 
... 

aber das schien nicht eine neue regex für modulePathIgnorePatterns

+0

Haben Sie eine Lösung gefunden? Ich habe gerade ein Problem auf Jests Github Repo angesprochen: https://github.com/facebook/jest/issues/2447 – olivarra1

+1

@ olvarra1 Nicht ein großer, aber es gibt eine Lösung. Wir haben schließlich eine 'gebaute' Version von myLibary in einen Ordner innerhalb der Projektstruktur namens dist/eingefügt. Die Lösung besteht darin, nur dist/in myWebapp/node_modules/myLibrary/ zu verlinken. Wir haben das Modul myLibary in einer privaten npm-Registry veröffentlicht. Danach installierten wir myLibary in myWebapp als normale Abhängigkeit, gingen aber in myWebapps/node_modules/myLibrary, löschten das dist/-Verzeichnis und das verknüpfte dist/von der lokalen Arbeitskopie von myLibrary wie ln -s ../. ./../myLibrary/dist dist/ – albertlockett

Antwort

0

Versuchen zu arbeiten.

"modulePathIgnorePatterns": [ 
    "<rootDir>/node_modules.*/react" 
] 

* sollte jedes Zeichen Null oder öfter. Also sollten alle reagieren ausgeschlossen werden.

+0

Shoot Man, das hat auch nicht wirklich funktioniert – albertlockett