这是我的测试文件
// /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/...
)中的绝对路径导入组件?
我的文件结构与您的文件结构完全相同。要教Jest使用以a开头的导入/
,我使用babel-plugin-module-resolver及其方便的root
选项。My .babelrc
for Jest看起来像这样:
{
"presets": ["es2015", "meteor"],
"plugins": [
"transform-class-properties",
"transform-react-constant-elements",
"transform-react-inline-elements",
"transform-react-remove-prop-types",
["module-resolver", {
"root": ["../"],
"alias": {
"react-router-dom": "react-router-dom/umd/react-router-dom.min.js",
"redux": "redux/dist/redux.min.js",
"react-redux": "react-redux/dist/react-redux.min.js"
}
}]
]
}
当我使用自定义根导入的Meteor时,我将Jest的用法和配置隐藏到.jest
存储库根目录中的目录中,使我可以拥有一个特定的目录,.babelrc
而又不会与Meteor的冲突。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句