我正在尝试在node.js下开发一个应用程序。我需要一个名为autocomplete的模块,所以我做了
onCommand
并且工作正常。 npm install -S autocomplete
已更新,一切都已完成。
但我需要客户端的自动完成功能。这个问题最流行的解决方案似乎是使用browserify,所以我在全球范围内安装它似乎有效。
现在根据我读过的所有内容,我应该能够:
packages.json
然后在views / index.html中我应该能够拥有
cd node_modules
browserify autocomplete/index.js > bundle.js
mv bundle.js ../public/lib/js/
最后我应该可以说
<script src="lib/js/bundle.js">
因为自动完成对象是在自动填充模块中定义的,而这就是说明如何实例化它。
但遗憾的是我的浏览器显示var auto = new Autocomplete();
,所以显然没有收到消息。
以上是什么问题?
答案 0 :(得分:1)
运行Browserify时,请将其创建为standalone
模块:
browserify autocomplete/index.js --standalone Autocomplete > autocomplete.js
为了简单起见,我只是在这里更改名称 - 无论你想要什么,都可以使用它。
然后,当您在浏览器中运行此操作时,new Autocomplete()
应该可用。
修改强> 虽然这是可行的,但缺少此模块的文档,并且您正在阅读文档的模块似乎缺失。
当您可以使用已为浏览器构建的typeahead
之类的内容时,无需解决此问题。
答案 1 :(得分:0)
事实证明,因为自动填充功能未导出到全局范围。 在您使用自动填充的文件中尝试此操作,例如在app.js:
中var Autocomplete = require('autocomplete');
var auto = new Autocomplete();
然后
browserify app.js > bundle.js
mv bundle.js ../public/lib/js/