2016-09-22 1 views
5

Ich habe ein Problem mit Scherz, in dem keine Fragen, was ich tue es versucht, die CSS-Dateien als Javascript zu analysieren.jest versucht zu analysieren .css

Die Dateien werden ordnungsgemäß mit Webpack erstellt.

Ich habe die folgende Konfiguration für Scherz

"jest": { 
    "rootDir": "./src", 
    "moduleNameMapper": { 
     "^.*[.](css|CSS)$": "../jest/styleMock.js" 
    } 
    }, 

Ich habe auch versucht, ein Skript Präprozessor die CSS aus den Einfuhren abzustreifen:

"jest": { 
    "rootDir": "./src", 
    "scriptPreprocessor": "../node_modules/jest-css-modules" 
    }, 

Es hält den Fehler zu werfen.

({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){.button { 
                          ^
    SyntaxError: Unexpected token . 

Antwort

0

Haben Sie versucht babel CLI?

In meinem Präprozessor verwende ich babel-core und canCompile Funktion von babel-core->utils meinen Code zu transformieren und ignorieren auch andere Dateien als Js, .es, .jsx usw.

var babel = require('babel-core'); 
var canCompile = babel.util.canCompile 

module.exports = { 
    process: function (src, filename) { 
    if (!canCompile(filename)) { 
     return ''; //ignore this file 
    } 

Vielleicht auch Ihren Code nicht transformiert und deshalb haben Sie SyntaxError (babel.transform)? Sehen Sie sich auch custom preprocessor im Scherz an.

+0

Ich fand die Lösung mit styleMock sein musste und fileMock jest-Dateien, werde ich diese Antwort später veröffentlichen, wenn ich es schaffe, wieder auf das Repository zuzugreifen. – Onza

+0

@Onza Macht es Ihnen etwas aus, die Antwort zu posten? – anasaitali

+0

Ich habe den Zugriff auf das Repository verloren: c aber von dem, woran ich mich erinnere, musste etwas in den styleMock- und fileMock-jest-Dateien sein, die sagten, es solle nichts analysieren. – Onza

3

Die beste Lösung ist eine moduleNameMapper Zeile in Ihrer Jest-Konfiguration zu verwenden, wie described in the Jest docs.

Eine minimale "ignorieren css" Scherz config in package.json, könnte so

"jest": { 
    "moduleNameMapper": { "\\.(css|less)$": "<rootDir>/assets/css/__mocks__/styleMock.js" } 
    }, 

Dann styleMock.js gerade diese

module.exports = {}; 
Verwandte Themen