如何从node_module从子目录导入?

时间:2017-02-20 00:32:48

标签: reactjs ecmascript-6 history.js create-react-app

我正在使用create-react-app,我有一行说:

import createHistory from 'history/lib/createBrowserHistory'

但这不起作用,它会引发错误:

Error in ./src/deps/history.js.
Module not found: 'history/lib/createBrowserHistory' 
in /home/aurimus/Apps/projects/my-project/src/deps

create-react-app是否特别不支持此功能?我该如何规避这个?

*** UPDATE * **

在修正了lib的url(使用过时的教程)之后,我仍然没有导入任何内容,createBrowserHistoryundefined

我正在使用其他文件来摘要import

内部 deps / history.js

import createBrowserHistory from 'history/createBrowserHistory.js'
export default createBrowserHistory

内部 index.js

import history from './deps/history';
history.listen(render); // history is undefined

我做错了吗?

3 个答案:

答案 0 :(得分:2)

  

create-react-app特别不支持这个吗?

不,这与create-react-app无关。

  

我该如何规避这个?

错误告诉您问题到底是什么:

  

未找到模块:' history / lib / createBrowserHistory'

这意味着history/lib/createBrowserHistory不存在,即您使用了错误的路径。

我安装了history,查看了包内容,发现文件createBrowserHistory位于包的根目录中(事实上,没有lib/目录)。这意味着您要导入history/createBrowserHistory

答案 1 :(得分:1)

来自history docs

{{1}}

答案 2 :(得分:0)

我的最终解决方案是感谢Felix:

getCause

deps/history.js

然后在import createBrowserHistory from 'history/createBrowserHistory.js' export default createBrowserHistory()

index.js