浏览后客户端节点模块不工作
有人能告诉我我做错了什么吗?
我正在尝试在node.js下开发一个应用程序。 我需要一个名为autocomplete的模块,所以我做了
npm install -S autocomplete
这工作得很好。 packages.json
已经更新,一切。
但是我需要客户端的自动完成function。 这个问题最stream行的解决scheme似乎是使用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
模块创build:
browserify autocomplete/index.js --standalone Autocomplete > autocomplete.js
我只是为了简单而改变这个名字 – 随心所欲地称呼它。
然后,当你在浏览器中运行它时, new Autocomplete()
应该是可用的。
编辑虽然这是可行的,这个模块的文档丢失,并且你正在阅读文档的模块似乎丢失。
当你可以使用类似于已经为浏览器构build的typeahead
东西时,就不需要去麻烦了。
所以事实certificate,因为自动完成不会被导出到全局范围。 在您使用自动完成的文件中尝试此操作,例如在app.js中:
var Autocomplete = require('autocomplete'); var auto = new Autocomplete();
然后
browserify app.js > bundle.js mv bundle.js ../public/lib/js/