在browserify之后,客户端节点模块不起作用

时间:2015-07-19 02:34:50

标签: node.js autocomplete client-side browserify node-modules

我正在尝试在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(); ,所以显然没有收到消息。

以上是什么问题?

2 个答案:

答案 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/