path = require 'path' Module = require 'module' # Clear Node's global search paths. Module.globalPaths.length = 0 # Clear current and parent(init.coffee)'s search paths. module.paths = [] module.parent.paths = [] # Prevent Node from adding paths outside this app to search paths. Module._nodeModulePaths = (from) -> from = path.resolve from # If "from" is outside the app then we do nothing. skipOutsidePaths = from.startsWith process.resourcesPath # Following logoic is copied from module.js. splitRe = if process.platform is 'win32' then /[\/\\]/ else /\// paths = [] parts = from.split splitRe for part, tip in parts by -1 continue if part is 'node_modules' dir = parts.slice(0, tip + 1).join path.sep break if skipOutsidePaths and not dir.startsWith process.resourcesPath paths.push path.join(dir, 'node_modules') paths