Bha*_*oni 4 javascript reactjs jestjs css-modules
我正在使用 Jest 和 Enzyme 来测试我的应用程序。我收到错误:
\n\n FAIL app/containers/Navbar/NavbarContainer.test.js\n \xe2\x97\x8f Test suite failed to run\n\n app/components/Navbar/styles.css: Unexpected token (1:0)\n > 1 | @import "../../styles/base/_variables";\n | ^\n 2 |\n 3 | .navbar{\n 4 | width: $navbar-width;\n
Run Code Online (Sandbox Code Playgroud)\n\n这是我在 package.json 中的 Jest 配置:
\n\n"jest": {\n "verbose": true,\n "globals": {\n "env": {\n "isProd": false,\n "isDev": true,\n "command": "start"\n }\n },\n "moduleNameMapper": {\n "\\\\.(css)$": "identity-obj-proxy"\n },\n "moduleFileExtensions": [\n "js",\n "jsx",\n "json",\n "css"\n ],\n "modulePaths": [\n "/app"\n ],\n "moduleDirectories": [\n "node_modules"\n ],\n "verbose": true,\n "setupFiles": [\n "./setupJest.js"\n ],\n "setupTestFrameworkScriptFile": "<rootDir>/setupTests.js"\n }\n
Run Code Online (Sandbox Code Playgroud)\n\n我在设置应用程序时遵循了指南,我发现这identity-obj-proxy
将有助于模拟 css-modules 功能,但这在我的情况下不起作用。请让我知道我在这里缺少什么。
PS 这不是 ES6 模块导入。诉讼失败是因为@import
css中有一个。
更新从 2018 年 2 月开始使用create-react-app的人。您无法覆盖 package.json 中的 moduleNameMapper,但在 jest.config.js 中它可以工作,不幸的是,我还没有找到任何关于它为何起作用的文档。所以我的jest.config.js看起来像这样:
module.exports = {
...,
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(scss|sass|css)$": "identity-obj-proxy"
}
}
Run Code Online (Sandbox Code Playgroud)
它可以很好地跳过 scss 文件和 @import 。
我添加到 devDependency 中identity-obj-proxy
支持我的答案我关注了jest webpack
归档时间: |
|
查看次数: |
3215 次 |
最近记录: |