2017-02-20 134 views
0

我使用create-react-app,我有這樣一行:如何從node_module的子目錄導入?

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 

難道我做錯了什麼?

回答

2

Is this specifically not supported by create-react-app?

不,這與create-react-app無關。

How do I circumvent this?

錯誤告訴你到底是什麼問題:

Module not found: 'history/lib/createBrowserHistory'

這意味着history/lib/createBrowserHistory不存在,即您使用了錯誤的道路。

我安裝了history,看了看包裏的內容,注意到文件createBrowserHistory位於包的根目錄下(其實沒有lib/目錄)。這意味着你想要導入history/createBrowserHistory

+0

謝謝,這解決了未找到的東西,但現在導入後仍然未定義。有什麼建議麼?更新了問題 – Aurimas

+0

@Aurimas:查看該文件並檢查它的輸出內容和方式。 'history'不應該是'undefined',但'history.listen'可能是。該文件導出一個函數,而不是一個對象。該函數返回一個具有「listen」屬性的對象,因此您需要先調用該函數。如果您不知道某個模塊正在輸出什麼值,請查看其來源。 –

+0

如果您可以在以下問題中說出任何內容:http://stackoverflow.com/questions/42356481/how-to-get-the-last-key-of-object-which-has-a-value/42356657 –

1

history docs

Using npm: 

$ npm install --save history 
Then with a module bundler like webpack, use as you would anything else: 

// using ES6 modules 
import createHistory from 'history/createBrowserHistory' 

// using CommonJS modules 
var createHistory = require('history').createBrowserHistory 
0

我的最終解決方案,它的工作是得益於菲利克斯:

deps/history.js

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

然後在index.js

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