Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 为网页包和Jest设置地图别名_Reactjs_Webpack_Jestjs - Fatal编程技术网

Reactjs 为网页包和Jest设置地图别名

Reactjs 为网页包和Jest设置地图别名,reactjs,webpack,jestjs,Reactjs,Webpack,Jestjs,所以我在我的webpack.config.js上有这个 resolve : { alias : { Actions : path.resolve(__dirname , 'src/actions/'), Components : path.resolve( __dirname , 'src/components/' ), Reducers : path.resolve( __dirname , 'src/reducers/' )

所以我在我的webpack.config.js上有这个

resolve : {
    alias : {
        Actions    : path.resolve(__dirname  , 'src/actions/'),
        Components : path.resolve( __dirname , 'src/components/' ),
        Reducers   : path.resolve( __dirname , 'src/reducers/' ),
        Sagas      : path.resolve( __dirname , 'src/sagas/' )
    }
},
一切都很好,我的测试应用程序运行良好,我能够导入我的组件,我能够构建我的应用程序

然而

我的玩笑测试失败

resolve : {
    alias : {
        Actions    : path.resolve(__dirname  , 'src/actions/'),
        Components : path.resolve( __dirname , 'src/components/' ),
        Reducers   : path.resolve( __dirname , 'src/reducers/' ),
        Sagas      : path.resolve( __dirname , 'src/sagas/' )
    }
},
在控制台上,我从组件文件中找不到模块名

因此,我尝试在我的jest.config.json文件上设置moduleNameMapper

这就是我现在拥有的

"moduleNameMapper"    : {
                        "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$" : "<rootDir>/src/__mocks__/fileMock.js",
                        "\\.(css|less|scss|sass)$" : "<rootDir>/src/__mocks__/styleMock.js",
                        "^Actions$"    : "<rootDir>/src/actions/",
                        "^Reducers$"   : "<rootDir>/src/reducers/",
                        "^Components$" : "<rootDir>/src/components/",
                        "^Sagas$"      : "<rootDir>/src/sagas/"
                    }
“moduleNameMapper”:{
“\ \(jpg | jpeg | png | gif | eot | otf | webp | svg | ttf | woff | woff2 | mp4 | webm | wav | mp3 | m4a | aac | oga |)$”:“/src/| uu mocks | uuuuuuuu/fileMock.js,
“\\(css | less | scss | sass)$”:“/src/uu mocks\uuu/styleMock.js”,
“^Actions$”:“/src/Actions/”,
“^Reducers$”:“/src/Reducers/”,
“^Components$”:“/src/Components/”,
“^Sagas$”:“/src/Sagas/”
}
似乎不起作用,我得到了与上面截图相同的错误

你能帮我完成我想做的事情吗?那就是有一个可以在webpack和jest上使用的地图别名


提前感谢。

您是否尝试使用“^Actions”而不是“^Actions$”?结尾的美元符号通常意味着正则表达式模式仅在字符串(您的所需字符串)结束时匹配。@Felix我这样做了,但它只是说“配置错误:找不到moudle……”与上述错误不同。嗯。。。我刚遇到这个。正如我在那里和官方文档中看到的,jest需要直接映射到特定文件,这意味着您必须使用如下配对:
“^Actions(.*)$”:“/src/Actions$1”
@Felix It worked!谢谢你,伙计!非常感谢。