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