我想知道如何将esm
包https://www.npmjs.com/package/esm与jest合并到节点后端。
我尝试在文件的最顶部设置一个require("esm")
和require("esm")(module)
的安装文件,但它仍然给我SyntaxError: Unexpected token
错误。
我以前会使用node -r esm
,但jest不支持这个。
我想知道如何将esm
包https://www.npmjs.com/package/esm与jest合并到节点后端。
我尝试在文件的最顶部设置一个require("esm")
和require("esm")(module)
的安装文件,但它仍然给我SyntaxError: Unexpected token
错误。
我以前会使用node -r esm
,但jest不支持这个。
2条答案
按热度按时间goucqfw61#
当执行
require("esm")(module)
时,可以将其视为正在创建一个esm-transformer函数,该函数正在挂起一个要转换为ES模块的文件。下面是我对node v8+的尝试:
jest
配置esm
配置utils-1.js:
utils-2.js:
test/utils-1.assert.js
test/utils-2.assert.js
test/utils.test.js
希望这有帮助!
vx6bjr1n2#
如果有人还在寻找,公认的答案确实需要一点努力。
您还可以将
esm
包与jest
一起使用,方法是使用jest-esm-transformer-2
(如果您使用的是jest
〈28,则使用jest-esm-transformer
)将esm文件转换回cjs。1.安装软件包
npm i jest-esm-transformer-2 --save-dev
1.在根目录中创建
jest.config.js
并配置代码转换以使用jest-esm-transformer-2
1.运行
jest
,不带标志等。