我想知道如何将esm包https://www.npmjs.com/package/esm与节点后端的jest结合起来。
我试着用require("esm")和require("esm")(module)在文件的顶部设置一个安装文件,但是它仍然给了我SyntaxError: Unexpected token错误。
我以前会使用node -r esm,但jest不支持这一点。
发布于 2018-11-07 16:56:26
当您执行require("esm")(module)时,请将其想象为正在创建一个esm-转换器函数,该函数正在挂起要转换为ES模块的文件。
下面是我对节点v8+的尝试:
jest配置esm配置

utils-1.js:
export const add = (a, b) => a + b;utils-2.js:
export const multiAdd = array => array.reduce((sum, next) => sum + next, 0)_test_/utils-1.assert.js
import { add } from '../utils-1';
describe('add(a,b)', () => {
it('should return the addtion of its two inputs', () => {
expect(add(1,2)).toBe(3);
});
});_test_/utils-2.assert.js
import { multiAdd } from '../utils-2';
describe('multiAdd(<Number[]>)', () => {
it('should return a summation of all array elements', () => {
expect(multiAdd([1,2,3,4])).toBe(10);
})
});_test_/utils.test.js
const esmImport = require('esm')(module);
const utils_1 = esmImport('./utils-1.assert')
const utils_2 = esmImport('./utils-2.assert')

希望这能有所帮助!
https://stackoverflow.com/questions/53095199
复制相似问题