繁体   English   中英

浏览器验证后,客户端节点模块不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM