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 exportconfigusingmodule.exports = config;. If not, then we must be in the browser andconfigwill 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.jsand thenanother-file.js, theconfigvariable (var config = { ... }) will be available as a global variable inanother-file.js. Themoduleandrequirevariables 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.
