Jest/Babel 找不到没有路径前缀的模块

woojoo666

我正在尝试遵循Jest 入门指南,但使用 ES6 模块和 Babel。我的根文件夹有两个 javascript 文件sumfn.jssum.test.js. 我的sum.test.js文件看起来像这样:

import { sum } from 'sumfn';

test('adds 1 + 2 to equal 3', () => {
    expect(sum(1, 2)).toBe(3);
});

然而,似乎 Jest 在解析时遇到了麻烦sumfn,即使它显然确实找到了该文件sunfn.js

  ● Test suite failed to run

    Cannot find module 'sumfn' from 'sum.test.js'

    However, Jest was able to find:
        './sumfn.js'

    You might want to include a file extension in your import, or update your 'moduleFileExtensions', which is currently ['js', 'json', 'jsx', 'ts', 'tsx', 'node'].

如果我将导入行更改为 use ./sumfn,它会起作用。但是,从我读到的有关 ES6 导入的信息来看,它似乎应该能够在同一目录中找到文件。这可能在 Jest 中不支持吗?

woojoo666

所以我感到困惑的主要原因之一是因为那里有很多过时的 ES6 模块指南。事实上,谷歌上的许多热门搜索结果似乎已经过时。我一直在寻找像导游这个这个这个,他们都表示,你可以从一个模块名称导入,而不指定路径,例如

import { double } from 'mymodule';

这些被称为“裸”导入说明符,指南说默认情况下它将在当前目录中搜索匹配的模块。但是,现在似乎浏览器不支持它们

地方变得极为混乱的是,他们在BabelJS和支持的WebPack,但它遵循不同的约定。例如,Webpack 搜索 中指定resolve.modules路径,默认情况下包括node_modules文件夹。这就是Create-React-App 示例可以使用类似语句的原因

import React from 'react';

似乎未来的计划是让环境决定如何解决这些“裸”说明符(Source)。让每个环境以不同的方式解析这些说明符似乎很危险,这可能会使制作交叉兼容的模块变得困难,但我想这是目前的计划。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Angular 2形式“找不到带有路径的控件”

角反应形式:找不到带有路径的控件:

在根项目中找不到具有路径的项目

Angular FormArray:找不到带有路径的控件

错误错误:找不到带有路径的控件

没有现有路径的GIT子模块功能

在角度 6 中导入没有路径的模块

具有路径重构的Floyd–Warshall算法找不到路径

找不到模块错误:没有名为config的模块

找不到模块错误:没有模块名称matplotlib

找不到模块错误:没有名为“ src”的模块

找不到模块没有名为“安全”瓶的模块

没有路径的依赖路径的类型?

Angular 2反应形式:找不到带有路径的控件

角度4:嵌套的表单字段:找不到带有路径的控件

Angular 7和窗体数组错误找不到带有路径的控件

错误:找不到带有路径的控件:'specs -> 2' FormArray 复选框列表

使用模型和formgroupdirective时找不到带有路径的控件

RC.5带有路由的延迟加载模块时抛出“找不到'默认'

没有模块错误,代码不在包装中。尽管在PYTHONPATH中有路径

找不到Python包,没有名为“ coroapi”的模块

使用带有路径前缀的cherrypy公开函数

蜂巢视图没有路径?

路径似乎正确,但找不到惰性模块

找不到模块 - 相对路径

CMake的find_library找不到没有版本,扩展名和lib前缀的库

在NPM脚本中找不到模块自动前缀

404找不到带有路由参数的Laravel

找不到模块错误,因为路径被解释为模块