Javascript Jest css模块语法错误:意外标记
我已经设置了我的jest,以便在遵循静态文件的说明后允许静态文件这样做,但是我仍然收到以下错误 我如何才能让它传递并创建快照 终端错误Javascript Jest css模块语法错误:意外标记,javascript,reactjs,jestjs,css-modules,Javascript,Reactjs,Jestjs,Css Modules,我已经设置了我的jest,以便在遵循静态文件的说明后允许静态文件这样做,但是我仍然收到以下错误 我如何才能让它传递并创建快照 终端错误 FAIL src/components/Splash/Splash.test.js ● Test suite failed to run /var/www/com/src/components/shared/logo/_Logo.css:1 ({"Object.<anonymous>":function(module,expo
FAIL src/components/Splash/Splash.test.js
● Test suite failed to run
/var/www/com/src/components/shared/logo/_Logo.css:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){.logo {
^
SyntaxError: Unexpected token .
3 |
4 |
> 5 | import logo from './_Logo.css';
6 | import * as font from '../font/fontello.css';
FAIL src/components/Splash/Splash.test.js
● 测试套件无法运行
/var/www/com/src/components/shared/logo/_logo.css:1
({“Object.”:函数(模块、导出、require、目录名、文件名、全局、jest){.logo{
^
SyntaxError:意外标记。
3 |
4 |
>5 |从“/_logo.css”导入徽标;
6 |从“../font/fontello.css”导入*作为字体;
Splash.test.js
import { shallow } from 'enzyme';
import { shallowToJson } from 'enzyme-to-json';
import Splash from './Splash';
it('Splash page is rendered', () => {
const result = shallow(
<Splash />,
);
expect(shallowToJson(result)).toMatchSnapshot();
});
import{shall}来自“酶”;
从'enzyme to json'导入{shallowToJson};
从“/Splash”导入飞溅;
它('呈现初始页面',()=>{
常数结果=浅(
,
);
expect(shallowToJson(result)).toMatchSnapshot();
});
Jest配置
"jest": {
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"setupTestFrameworkScriptFile": "./node_modules/jest-enzyme/lib/index.js",
"moduleFileExtensions": [
"js"
],
"moduleDirectories": [
"node_modules"
],
"testPathIgnorePatterns": [
"<rootDir>/node_modules/",
"<rootDir>/app/"
],
"moduleNameMapper": {
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less)$": "identity-obj-proxy"
}
},
"transform": {
"^.+\\.js$": "babel-jest"
}
}
“开玩笑”:{
“快照序列化程序”:[
“酶到json/序列化程序”
],
“SetupTestFrameworkScript文件”:“/node_modules/jest enzyme/lib/index.js”,
“moduleFileExtensions”:[
“js”
],
“模块目录”:[
“节点_模块”
],
“testPathIgnorePatterns”:[
“/node_modules/”,
“/app/”
],
“moduleNameMapper”:{
“moduleNameMapper”:{
“\ \(jpg | jpeg | png | gif | eot | otf | webp | svg | ttf | woff | woff2 | mp4 | webm | wav | mp3 | m4a | aac | oga |)$”:“/(uu mocks |/uu/fileMock.js,
“\\(css |小于)$”:“标识obj代理”
}
},
“转变”:{
“^.+\\.js$”:“巴别塔笑话”
}
}
有一个小错误:moduleNameMapper:{moduleNameMapper{}
应该是moduleNameMapper:{}
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less)$": "identity-obj-proxy"
}
“moduleNameMapper”:{
“\ \(jpg | jpeg | png | gif | eot | otf | webp | svg | ttf | woff | woff2 | mp4 | webm | wav | mp3 | m4a | aac | oga |)$”:“/(uu mocks |/uu/fileMock.js,
“\\(css |小于)$”:“标识obj代理”
}
从2018年2月起,使用创建react应用程序的人可能会成功。
我部分遵循了文档以使其正常工作
我们还发现moduleNameMapper不能在package.json中被重写,但在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"
}
}
module.exports={
...,
“moduleNameMapper”:{
“\ \(jpg | jpeg | png | gif | eot | otf | webp | svg | ttf | woff | woff2 | mp4 | webm | wav | mp3 | m4a | aac | oga |)$”:“/(uu mocks |/uu/fileMock.js,
“\\(scss | sass | css)$”:“身份对象代理”
}
}
它可以很好地跳过scss文件和@import
我在devDependenciesidentity obj proxy中添加了一个小错误:
moduleNameMapper:{moduleNameMapper{}
应该是moduleNameMapper:{}
,也可能运行带有-无缓存的jest
可能会有帮助请添加此作为答案andreas,当然它不是非常有用,而是定制的,但它可能会帮助其他人不那么愚蠢:对我来说,安装identity obj proxy和“\\(css)$”:“jest css模块”起作用