【发布时间】:2022-01-16 09:02:49
【问题描述】:
尝试在 TS 项目中使用纯 ESM 的 file-type 模块,但我的玩笑失败了。我已经按照here 的指示设置了 ESM 选项,但仍然收到 SyntaxError: Cannot use import statement outside a module 错误。
我已经做了一个沙盒here。
我的代码总结:
import { fileTypeFromBuffer } from "file-type";
笑话配置:
export default {
testEnvironment: "jest-environment-node",
globals: {
extensionsToTreatAsEsm: [".ts"],
"ts-jest": {
useESM: true,
},
},
transform: {
"^.+\\.(ts|tsx|js|jsx)?$": "ts-jest",
//"^.+\\.tsx?$": "ts-jest",
},
moduleNameMapper: {
"^(\\.{1,2}/.*)\\.js$": "$1",
},
preset: "ts-jest",
//preset: 'ts-jest/presets/default-esm' // or other ESM presets
};
TSConfig:
{
"extends": "@tsconfig/node14/tsconfig.json",
"compilerOptions": {
"target": "ES2018",
"module": "commonjs",
"lib": ["es2018"],
"declaration": true,
"strict": true,
"strictNullChecks": true,
"alwaysStrict": true,
//importsNotUsedAsValues
// "noImplicitAny": false,
"noImplicitReturns": false,
"noImplicitThis": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
"noEmit": true,
"noFallthroughCasesInSwitch": false,
"inlineSourceMap": true,
"inlineSources": true,
"experimentalDecorators": true,
"strictPropertyInitialization": false,
// "typeRoots": ["./node_modules/@types"]
"resolveJsonModule": true,
"outDir": "dist",
"baseUrl": ".",
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
有什么想法吗?
【问题讨论】:
标签: typescript jestjs es6-modules ts-jest