2015-06-07 127 views
0

我想使用browserify中的https://github.com/asbjornenge/react-datalist中的node.js模塊。在從npm安裝的模塊中找不到導入的子模塊

我沒有在我的工作目錄本地安裝模塊。 在該目錄中,我創建了一個JavaScript文件,main.jsx

var React = require('react'); 
var ReactDatalist = require('react-datalist'); 

var options = ['apple','orange','pear','pineapple','melon']; 
React.render(<ReactDatalist list="fruit" options={options} />, document.body); 

然後,我reactify這樣的:

browserify -t reactify main.jsx > main.js 

到目前爲止好,但問題是,當我想browserify:

browserify main.js > bundle.js 

我得到了一個錯誤:

Error: Cannot find module './components/DataList' from '...my working directory...' 
at /usr/local/lib/node_modules/browserify/node_modules/resolve/lib/async.js:55:21 
at load (/usr/local/lib/node_modules/browserify/node_modules/resolve/lib/async.js:69:43) 
at onex (/usr/local/lib/node_modules/browserify/node_modules/resolve/lib/async.js:92:31) 
at /usr/local/lib/node_modules/browserify/node_modules/resolve/lib/async.js:22:47 
at FSReqWrap.oncomplete (fs.js:95:15) 

...my working directory../node_modules/react-datalist/src/ReactDataList.js,這被定義:

import React   from 'react' 
import DataList  from './components/DataList' 
import DataListOption from './components/DataListOption' 
import layout   from './styles/react-datalist.styl' 

這是我不清楚有關導入的範圍。我認爲node.js導入機制應該在本地工作,但爲什麼它會嘗試從我的工作目錄中找到'./components/DataList'

必須有一些關於導入我還不知道的模塊的概念。所以,如果你能指出一些參考,我將不勝感激。

回答

0

現在我感到尷尬。問題是我沒有意識到轉換步驟,捆綁步驟已經合併到一個命令行中。因此,而不是

browserify -t reactify main.jsx > main.js 
browserify main.js > bundle.js 

做這個

browserify -t reactify main.jsx > bundle.js