# Import common settings.
require path.resolve(__dirname, '..', '..', 'common', 'lib', 'init')
-# Add browser/api/lib to module search paths, which contains javascript part of
-# Electron's built-in libraries.
+# Expose public APIs.
globalPaths = Module.globalPaths
-globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
globalPaths.push path.resolve(__dirname, '..', 'api', 'lib', 'exports')
+unless process.env.ELECTRON_DISABLE_OLD_STYLE_MODULES
+ globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
+
if process.platform is 'win32'
# Redirect node's console to use our own implementations, since node can not
# handle console output when running as GUI program.
catch e
process.binding "atom_common_#{name}" if /No such module/.test e.message
-# Add common/api/lib to module search paths.
-Module.globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
+unless process.env.ELECTRON_DISABLE_OLD_STYLE_MODULES
+ # Add common/api/lib to module search paths.
+ Module.globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
# setImmediate and process.nextTick makes use of uv_check and uv_prepare to
# run the callbacks, however since we only run uv loop on requests, the
# Import common settings.
require path.resolve(__dirname, '..', '..', 'common', 'lib', 'init')
-# Add renderer/api/lib to require's search paths, which contains javascript part
-# of Atom's built-in libraries.
+# Expose public APIs.
globalPaths = Module.globalPaths
-globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
globalPaths.push path.resolve(__dirname, '..', 'api', 'lib', 'exports')
+unless process.env.ELECTRON_DISABLE_OLD_STYLE_MODULES
+ globalPaths.push path.resolve(__dirname, '..', 'api', 'lib')
+
# The global variable will be used by ipc for event dispatching
v8Util = process.atomBinding 'v8_util'
v8Util.setHiddenValue global, 'ipc', new events.EventEmitter