园子的博客后台从 angular 15 升级到 angular 19 后运行测试报错,错误信息如下
$ npm run test
> node --experimental-vm-modules --no-warnings node_modules/jest/bin/jest.js --config jest.config.mjs
SyntaxError: Unexpected identifier 'assert'
at compileSourceTextModule (node:internal/modules/esm/utils:340:16)
at ModuleLoader.moduleStrategy (node:internal/modules/esm/translators:102:18)
at #translate (node:internal/modules/esm/loader:433:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:480:
请问如何解决这个问题?
通过 stackoverflow 上的回答知道了原因,node 22 不支持 import ... from ... assert
语法,需要改为 import ... from ... with
将 jest.config.mjs 中的
import config from './tsconfig.json' assert { type: 'json' };
改为
import config from './tsconfig.json' with { type: 'json' };
问题解决