如何解决节点上的客户端:未捕获ReferenceError:未定义require
这是因为require()
浏览器/客户端JavaScript中不存在。
现在,您将不得不对客户端JavaScript脚本管理做出一些选择。
您有三种选择:
客户端实现包括:
(大多数部署之前都需要一个构建步骤)
- Browserify-您可以在浏览器中使用大多数Node.js模块。这是我个人的最爱。
- Webpack-做所有事情(捆绑JS,CSS等)。由于React.js的激增而流行。因学习曲线困难而臭名昭著。
- 汇总 -新竞争者。利用ES6模块。包括摇树能力(删除未使用的代码)。
您可以阅读有关我的Browserify与(不推荐使用)Component比较的更多信息。
实现包括:
- RequireJS-在客户端JavaScript开发人员中非常受欢迎。因为它的异步特性,所以不是我的口味。
请注意,在搜索选择与之配套的产品时,您会了解到Bower。Bower仅用于程序包依赖性,并且在Commonjs和AMD等模块定义上不受质疑。
希望这会有所帮助。
解决方法
因此,我正在使用node / express + jade组合编写应用程序。
我有client.js
,已在客户端上加载。在该文件中,我有调用其他JavaScript文件中的函数的代码。我的尝试是使用
var m = require('./messages');
为了加载内容messages.js
(就像我在服务器端一样),然后再加载该文件的调用函数。但是,require
未在客户端上定义,并且抛出形式的错误Uncaught
ReferenceError: require is not defined
。
这些其他JS文件也在运行时在客户端上加载,因为我将链接放置在网页的标题上。因此,客户端知道从这些其他文件导出的所有功能。
如何从打开服务器套接字messages.js
的主client.js
文件中的其他JS文件(如)调用这些函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。