2016-09-22 89 views
5

我有一个问题,其中没有任何问题,我一直试图解析CSS文件为JavaScript。笑话试图解析.css

使用webpack正确构建文件。

我有玩笑

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

以下配置我也尝试了脚本预处理器从进口剥离CSS:

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

它不断抛出的错误。

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

回答

0

您试过babel CLI

在我预处理我使用babel-corebabel-core->utilscanCompile功能改造我的代码,同时也忽略了其他的文件比.js文件,.ES,.jsx等

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

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

也许你的代码也不会改变这就是为什么你有SyntaxErrorbabel.transform)?也可以看看custom preprocessor

+0

我居然找到了解决方案它必须与styleMock和fileMock的jest文件,稍后我会发布这样的答案,因为我设法再次访问存储库。 – Onza

+0

@Onza你介意发布答案吗? – anasaitali

+0

我失去了对存储库的访问:c,但是从我记忆中必须有styleMock和fileMock jest文件中的某些东西来告诉它不要解析任何东西。 – Onza

3

最好的解决方案是在您的Jest配置中使用moduleNameMapper行,如described in the Jest docs

一个最小的“忽略CSS”开玩笑的配置,在package.json,可能会喜欢这个

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

然后styleMock.js就是这个

module.exports = {};