[英]client-side node module doesn't work after browserify
我正在嘗試在node.js下開發一個應用程序。 我需要一個名為自動完成的模塊,所以我做了
npm install -S autocomplete
而且效果很好。 packages.json
已更新,一切packages.json
更新。
但是我需要客戶端自動完成功能。 解決此問題的最流行的方法似乎是使用browserify,因此我在全球范圍內安裝了該工具,並且似乎可以正常工作。
現在,根據我閱讀的所有內容,我應該能夠:
cd node_modules
browserify autocomplete/index.js > bundle.js
mv bundle.js ../public/lib/js/
然后在views / index.html中,我應該可以
<script src="lib/js/bundle.js">
最后我應該可以說
var auto = new Autocomplete();
因為自動完成對象是在自動完成模塊中定義的,這就是說明如何實例化它的方式。
但不幸的是,我的瀏覽器顯示“ Autocomplete is not defined
因此顯然沒有收到消息。
上面有什么問題?
運行Browserify時,將其創建為standalone
模塊:
browserify autocomplete/index.js --standalone Autocomplete > autocomplete.js
我在這里只是為了簡單起見更改名稱-隨便叫什么。
然后,當您在瀏覽器中以當前方式運行它時, new Autocomplete()
應該可用。
編輯盡管這是可行的,但缺少該模塊的文檔,並且您正在閱讀文檔的模塊似乎缺失。
當您可以使用已經為瀏覽器內置的諸如typeahead
東西時,就不必麻煩了。
事實證明,因為“自動完成”未導出到全局范圍。 在使用自動完成功能的文件中嘗試此操作,例如在app.js中:
var Autocomplete = require('autocomplete');
var auto = new Autocomplete();
然后
browserify app.js > bundle.js
mv bundle.js ../public/lib/js/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.