Jest - 找不到 split-pane-react 的模块错误

问题描述 投票:0回答:1

我正在尝试使用 Typescript 在 Next.js 项目中使用 Jest 来测试我的组件。 我收到的错误如下:

无法从“我的组件路径”中找到模块“split-pane-react”

运行测试用例。 我尝试将 jest.config.js 中的 moduleNameMapper 中的路径添加为

'split-pane-react': '<rootDir>/node_modules/split-pane-react/esm/index.js'

但它给出这样的导出错误

({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){export * from './SplitPane';
                                                                                      ^^^^^^
SyntaxError: Unexpected token 'export'

我还尝试过 
transformIgnorePatterns

来解决导出问题,但这也不起作用。 套餐版本:

“反应”:“18.2.0”,

“下一个”:“12.3.4”,
“开玩笑”:“29.7.0”,
“ts-jest”:“29.1.1”,
“ts-node”:“10.9.1”,

javascript reactjs next.js jestjs ts-jest
1个回答
0
投票

{ moduleNameMapper: { 'split-pane-react': '<rootDir>/node_modules/split-pane-react/esm/index.js' } }

由于没有解析重定向的文件,这仍然会出现错误,为此你需要做的是在 setupFilesAfterEnv 中模拟完整的包以满足你的要求,如下所示:

jest.mock('split-pane-react', () => ({ __esModule: true, default: jest.fn(({ children, sashRender, allowResize }) => ( <> {children} {sashRender && sashRender(1, allowResize)} </> )), Pane: jest.fn(({ children }) => <>{children}</>) }));

© www.soinside.com 2019 - 2024. All rights reserved.