我閱讀了許多與我類似的問題,但似乎都沒有解決我的問題。我正在使用Vue3、TypeScript、Jest和D3 v7。 當我嘗試從 "d3 "中匯入*作為d3;時,我在測驗中得到這樣的錯誤:
({"Object.<anonymous>"/span>:
function(module,exports, require,__dirname,__filename,global, jest)
{export * from "d3-array"/span>;
當我像這樣匯入d3時也會出現這個錯誤
import { BaseType, Selection, Transition, select } from "d3";
我試著將我的jest config的transformIgnorePatterns屬性更新為read,但這也不起作用:
transformIgnorePatterns: [
"<rootDir>/node_modules/(?!d3-(array))" ,
]
誰能給我解釋一下我在這里錯過的部分?下面是我的整個jest.config.js檔案
module.exports = {
collectCoverageFrom: [
"**/src/**.ts"。
"**/src/**/**.ts"。
"!**/dist/**"。
"!**/node_modules/**"。
"!**/public/**".
],
errorOnDeprecated: true。
preset: "@vue/cli-plugin-unit-jest/presets/typescript" ,
testMatch: ["**/*.spec.ts", "!**/node_modules/**"]。
testPathIgnorePatterns: ["<rootDir>/dist/"/span>, "<rootDir>/node_modules/"/span>]。
"modulePaths": [
"<rootDir>"。
],
transformIgnorePatterns: [
"<rootDir>/node_modules/(?!d3-(array))" ,
],
transform: {
"^. .ts"。"ts-jest",
"^. .vue$": "vue-jest"。
},
};
uj5u.com熱心網友回復:
一個快速的解決方法是使用已減化的d3構建,它已經被轉碼。或者直接匯入已減化的構建:
import * as d3 from 'd3/dist/d3.min'
或者使用Jest配置將d3映射到minified build:
// jest.config.js
module.exports = {
moduleNameMapper: {
'^d3$': '<rootDir> /node_modules/d3/dist/d3.min.js'。
},
}
如果這不是一個選項,你可以配置Jest來轉譯d3(以及它的依賴,也需要轉譯。internmap, delaunator, 和 robust-predicates):
// jest.config.js
module.exports = {
transformIgnorePatterns: [
'<rootDir>/node_modules/(?!d3|internmap|delaunator|robust-redicates)'/span>
],
}
注意:轉譯會給測驗運行增加大量時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331506.html
標籤:
