2016-09-22 11 views
5

Mam problem z żartem, w którym nie ma znaczenia, co robię, nadal próbuje parsować pliki css jako javascript.jest próbowanie parsować .css

Pliki są kompilowane poprawnie z pakietem sieci Web.

Mam następującą konfigurację żartem

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

Próbowałem też preprocesor skryptu rozebrać css z importu:

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

Utrzymuje rzuca błąd.

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

Odpowiedz

0

Czy próbowałeś już babel CLI?

W moim preprocesora używam babel-core i canCompile funkcja z babel-core->utils przekształcić mój kod, a także ignorować inne pliki niż js, .es, .jsx itp

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

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

Może Twój kod również nie jest przekształcona i dlatego masz SyntaxError (babel.transform)? Spójrz też na custom preprocessor w żart.

+0

I rzeczywiście okazało się, że rozwiązanie to musiało być z styleMock i pliki fileMock jest, opublikuję taką odpowiedź później, jak uda mi się uzyskać dostęp ponownie do repozytorium. – Onza

+0

@Onza Czy chcesz opublikować odpowiedź? – anasaitali

+0

Utraciłem dostęp do repozytorium: c ale z tego co pamiętam musiało być coś w styluMock i plikMock jest plikami, które mówią, że nie parsuje niczego. – Onza

3

Najlepszym rozwiązaniem jest użycie linii moduleNameMapper w konfiguracji Jest, jako described in the Jest docs.

Minimalny "ignorować css" żartem config, w package.json, może jak to

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

Następnie styleMock.js jest właśnie ten

module.exports = {};