我有一个使用"create-react-app"创建的项目,我在一个类似的文件中有一个导入
import MeasureTool from 'measuretool-googlemaps-v3';
当我运行我的项目时,我没有遇到任何问题,但当我试图使用npm run test
("test": "react-scripts test --env=jsdom"
(运行我的测试覆盖率时
我收到此错误找不到模块"measuretool-googlemaps-v3">
这是我在package.json文件中的笑话配置
"jest": {
"coverageReporters": [
"text",
"cobertura"
],
"collectCoverageFrom": [
"src/**/*.{js,jsx}",
"!/node_modules/",
"!src/index.js",
"!src/registerServiceWorker.js",
"!src/setupTests.js"
]
}
它只对此程序包给出错误。不确定我在这里做错了什么。
我也遇到了同样的问题。在我看来,问题的根源在于ESM模块。节点本身并不完全支持它们(请参阅此处的更多信息-https://jestjs.io/docs/ecmascript-modules#differences-在esm和commonjs之间(,因此我们可能会遇到这样的问题。
该软件包包含两个版本-ESM和UMD。我通过明确地将模块路径映射到UMD版本来解决我的问题:
moduleNameMapper: {
'^measuretool-googlemaps-v3$': '<rootDir>/node_modules/measuretool-googlemaps-v3/dist/gmaps-measuretool.umd.js',
}
将这些行添加到jest.config.js
文件中。希望它对你有用!