Read the statement by Michael Teeuw here.
How to keep secrets out of config.js (server only)
-
@BKeyport Here’s a more detailed explanation for you and anyone who is curious.
The
if (typeof module !== "undefined") {}
line checks if there is a global variable namedmodule
. If there is, then we must be using a module system and we have to exportconfig
usingmodule.exports = config;
. If not, then we must be in the browser andconfig
will already be available to any other modules.In the browser, there is no concept of separate modules (a.k.a. files); script files are loaded in and simply concatenated one after the other. So if you load
config.js
and thenanother-file.js
, theconfig
variable (var config = { ... }
) will be available as a global variable inanother-file.js
. Themodule
andrequire
variables are not defined.In more modern code with a module system, you have to export anything you want to use elsewhere, and import it in modules where you need it. Node.js uses
module.exports = ...
to export and... = require("module-to-import")
to import.