解决 Node.js 中的“Uncaught ReferenceError: require is not defined”错误
Posted
技术标签:
【中文标题】解决 Node.js 中的“Uncaught ReferenceError: require is not defined”错误【英文标题】:Resolve "Uncaught ReferenceError: require is not defined" error in Node.js 【发布时间】:2015-07-04 14:55:47 【问题描述】:我正在尝试使用 SengGrid 设置基本联系表单,但我不断收到“未捕获的 ReferenceError:未定义要求”错误。
我在 html 页面头部的脚本标签中有这段代码。
var sendgrid = require('sendgrid')(username,pass);
我查看了 requirejs,但我不确定为什么会收到此错误。有人可以向我解释如何解决这个问题吗?
【问题讨论】:
你真的在使用 node.js 吗?此代码应该添加到您的 javascript 服务器代码中,而不是 HTML 页面中。 Node.js 不在浏览器中。如果你想在浏览器中使用 requirejs,你需要使用脚本标签来加载它。 【参考方案1】:require()
未内置在浏览器中。
所以当你说“我在 html 页面头部的脚本标记中有这段代码”时。这可以解释为什么在脚本运行时没有定义符号 require
。如果你想在浏览器中使用require()
,那么你需要先使用一个脚本标签来加载一个定义了require函数并支持require()
类型功能的库,并确保加载成功后再尝试使用require()
。 requirejs 就是您可以使用的此类库之一。
require()
内置在服务器上的 node.js 中,因此它始终可用。
【讨论】:
我需要做什么才能在 angularjs 中使用 require()? @cfl - 请重新阅读我的答案的中间段落。如果你想在浏览器中使用类似require()
的功能,我会告诉你可以使用什么。这是一篇关于它的文章:sitepoint.com/using-requirejs-angularjs-applications【参考方案2】:
基本上,您需要为浏览器转换源代码,将 require 调用替换为实际的模块代码。 看看这些实用程序:
http://browserify.org/ - 它完全符合您的要求 https://webpack.github.io/ - 一个更复杂的 Web 打包框架,具有许多其他有用的功能。【讨论】:
以上是关于解决 Node.js 中的“Uncaught ReferenceError: require is not defined”错误的主要内容,如果未能解决你的问题,请参考以下文章
如何解决node.js中的“消息内容必须是非空字符串”[关闭]
解决 Node.js 中的“Uncaught ReferenceError: require is not defined”错误
如何通过部署 Node.js AWS Beanstalk 解决 /tmp/.config 中的权限问题?
如何解决 Bootstrap node.js 应用程序中的错误“无法设置未定义的属性 'emulateTransitionEnd'”?