Javascript Jest-如何考虑未编译模块?
我正在使用Jest运行一些测试,并且遇到了我正在使用的其中一个模块的问题。问题是,我正在尝试导入一个在构建时未编译的模块。我不向下编译的意思是,Javascript Jest-如何考虑未编译模块?,javascript,node.js,unit-testing,Javascript,Node.js,Unit Testing,我正在使用Jest运行一些测试,并且遇到了我正在使用的其中一个模块的问题。问题是,我正在尝试导入一个在构建时未编译的模块。我不向下编译的意思是,imports被放在我试图导入到另一个文件的顶部。我的意思是: jest.mock('@my-org/my-package/dist/browser'); import * as NTracking from '@my-org/my-package/dist/browser'; import generateStubs from '../test-jes
imports
被放在我试图导入到另一个文件的顶部。我的意思是:
jest.mock('@my-org/my-package/dist/browser');
import * as NTracking from '@my-org/my-package/dist/browser';
import generateStubs from '../test-jest/fixtures/client-stubs';
import testedController from './controller';
describe('client controller b', () => {
const stubs = generateStubs();
let mockWindow;
beforeEach(() => {
mockWindow = stubs.mockWindow;
NTracking.mockImplementation(() => stubs.nTracking);
});
afterEach(() => {
jest.clearAllMocks();
});
it('should construct', () => {
new testedController(mockWindow);
});
});
我遇到的问题是在第2行,我试图从@my org/my package/dist/browser
导入NTracking
。我尝试导入的文件如下所示:
browser.js
import somePackage from 'some-packge/some-function';
import someOtherPackage from 'some-other-packge/some-function';
在运行测试时,我遇到以下错误:
SyntaxError:意外的标识符
这是因为单词import
显然不是本机javascript定义
我的问题是-在运行测试之前,如何配置Jest来编译有问题的模块(
mypackage
)?您确定问题出在import
语句中吗?我遇到这种问题,错误消息是:
SyntaxError: Cannot use import statement outside a module
似乎对ECMAScript模块的支持仍处于试验阶段,在测试之前使用babel转换模块可能会取得更好的成功,请参见此处的讨论: