我的应用程序的结构使用了package.json中单独依赖项的核心代码。
例如,我的单元测试文件里面有一个import
import {SomeComponent} from 'core-pr/base-components/baseComponent';
其中core-pr
位于node_modules/core-pr
目录中。
并且baseComponent.ts
文件已成功加载并解析得很好。但在baseComponent.ts
内部存在相对依赖性,如
import {Helper} from './baseHelper';
并且无法解决错误消息 - SyntaxError: Unexpected token import
。
但如果我将import {Helper} from './baseHelper'
替换为const ... = require('./baseHelper')
- 它就可以了。
Jest设置为:
"jest": {
"globals": {
"ts-jest": {
"tsConfigFile": "tsconfig.spec.json"
},
"__TRANSFORM_HTML__": true
},
"preset": "jest-preset-angular",
"setupTestFrameworkScriptFile": "<rootDir>/jest/setupJest.ts",
"transformIgnorePatterns": [
"node_modules/(?!core-pr/src)"
],
"testEnvironment": "jsdom",
"transform": {
"^.+\\.ts$": "<rootDir>/node_modules/ts-jest/preprocessor.js",
".*\\.svg$" : "<rootDir>/jest/transformers/svgTransformer.js"
},
"testRegex": "",
"testMatch": ["<rootDir>/src/**/*.unit.ts"],
"moduleFileExtensions": [
"ts",
"js"
]
}
是否有人就这种从外部依赖解决的相对导入问题提出建议?
答案 0 :(得分:0)
经过调查,我发现配置文件中的transformIgnorePatterns
不正确。要解决我应该改变这个
"transformIgnorePatterns": [
"node_modules/(?!core-pr/src)"
],
到
"transformIgnorePatterns": [
"node_modules/core-pr/node_modules/"
],