我在我的javascript文件中导出了以下模块,以便我可以从基于node.js的构建设置(grunt,require ..)访问它。
....
if(module && module.exports) {
module.exports = m;
}
当我在浏览器中使用相同的文件时,它会出错
Uncaught ReferenceError: module is not defined const.js:49
(anonymous function)
我不使用node作为后端。
我怎么能避免这个错误?也就是说,我需要在构建期间(基于节点)导出m
以便require
,但在浏览器中独立运行。
为什么浏览器不将变量模块视为未定义而不抛出任何错误?
感谢。
答案 0 :(得分:29)
测试typeof module !== "undefined"
而不是module
为什么浏览器不将变量模块视为未定义而不抛出任何错误?
因为,以及未定义,它也是未声明的。当您在变量名中输入拼写错误时,这是一个很好的功能。例如,以下错误更好,而不是被视为false:
var loose = true;
if (lose) {
}