这是我的测试文件
// /imports/components/main.test.js
import React from 'react'
import { shallow, mount } from 'enzyme'
import Main from './main'
import TextInput from "/imports/ui/textInput"
...
并且 main.js 有
// /imports/components/main.js
import { action1 } from "/imports/actions/myAction"
但是当我运行测试时它会抛出一个错误,说
Cannot find module '/imports/actions/myAction' from 'main.js'
如果我评论 import './main'
,导入 TextInput 也会发生同样的事情。我在 node_modules 中导入模块没有问题。
如何告诉 Jest 或 webpack 使用项目目录中的绝对路径导入组件(即 import Foo from /imports/...
)?
原文由 spondbob 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的文件结构和你的完全一样。为了教 Jest 使用以
/
开头的导入,我使用 babel-plugin-module-resolver 及其方便的root
选项。我的.babelrc
对于 Jest 看起来像这样:当我使用自定义其根导入的 Meteor 时,我将 Jest 使用和配置隐藏到存储库根目录下的
.jest
目录中,允许我拥有一个特定的.babelrc
而不会冒险与 Meteor 的冲突。