20

我的 javascript 文件中有以下模块导出,因此我可以从基于 node.js 的构建设置(grunt,require..)中访问它。

    ....
if(module && module.exports) {
        module.exports = m;
    }

当我在浏览器中使用相同的文件时,它给出了错误

Uncaught ReferenceError: module is not defined const.js:49
(anonymous function)

使用节点作为后端。我怎样才能避免这个错误?也就是说,我需要在构建期间导出mrequire(基于节点),但在浏览器中独立工作。

为什么浏览器不将变量模块视为未定义并且不抛出任何错误?

谢谢。

4

1 回答 1

41

测试typeof module !== "undefined"而不是module

为什么浏览器不将变量模块视为未定义并且不抛出任何错误?

因为,除了未定义外,它也是undeclared。当您在变量名中输入错误时,这是​​一个很好的抛出错误的功能。例如,最好使以下错误而不是被视为错误:

var loose = true;
if (lose) {
}
于 2013-07-31T10:27:47.980 回答