1
有人能告訴我我做錯了什麼嗎?客戶端節點模塊在瀏覽後不工作
我想在node.js下開發一個應用程序。我需要一個名爲自動完成的模塊,所以我做了
npm install -S autocomplete
並且工作正常。 packages.json
已更新,一切。
但我需要客戶端的自動完成功能。這個問題最流行的解決方案似乎是使用browserify,所以我安裝了這個全球性的,它似乎工作。
現在,根據一切我讀過,我應該能夠:
cd node_modules
browserify autocomplete/index.js > bundle.js
mv bundle.js ../public/lib/js/
,然後在視圖/ index.html的我應該能有
<script src="lib/js/bundle.js">
最後我應該可以說
var auto = new Autocomplete();
因爲自動完成對象的自動完成模塊中定義,這就是個如何e說明說實例化它。
但不幸的是我的瀏覽器說Autocomplete is not defined
所以它顯然沒有得到消息。
上述有什麼問題?
感謝您的回覆,但不幸的是,這對我不起作用,因爲客戶端沒有定義「require」。這是另一個我知道已經寫了很多東西的問題,但到目前爲止我還沒有找到解決方案!如何定義客戶端使用的「require」? – nttaylor
browserify將遞歸分析應用程序中的所有require()調用,以便構建一個可在單個
當您運行Browserify,將其創建爲
standalone
模塊:我只是爲了簡單而改變名稱 - 隨便稱它。
然後,當您在瀏覽器中運行此應用程序時,應該可以使用
new Autocomplete()
。編輯 雖然這是可行的,但該模塊的文檔已丟失,而您正在閱讀文檔的模塊似乎已丟失。
當您可以使用已爲瀏覽器構建的
typeahead
之類的東西時,不需要去解決這個問題。來源
2015-07-19 02:45:14
謝謝你這個工作!我有點驚呆了,在閱讀有關browserify的幾個小時內,我從未讀過關於「standstand」標誌的消息。我想通常不需要?你能告訴我什麼是不同的「自動完成」,它是必要的? – nttaylor
任何時候一個模塊只使用'module.exports',那麼瀏覽器就不知道該模塊被調用了什麼。這就是'--standalone'爲你做的。我現在正在用同樣的東西建立一個圖書館。隨時upvote :) –
嗨,不幸的是,即使我能夠使用你的解決方案實例化對象,調用對象的方法給了另一個錯誤。我實例化了'auto = new Autocomplete()',但後來'auto.initialize(data)'產生了'Uncaught TypeError:getInitialElements不是函數'。有什麼想法嗎? – nttaylor