আপনি যদি কোড থেকে আপনার গ্লোবাল দির অ্যাক্সেস করার চেষ্টা করছেন তবে আপনি এ থেকে ব্যাকট্র্যাক করতে পারেন process.execPath
। উদাহরণস্বরূপ, wsproxy
যা রয়েছে তা সন্ধানের জন্য {NODE_GLOBAL_DIR}/bin/wsproxy
আপনি কেবল:
path.join(path.dirname(process.execPath), 'wsproxy')
ক্লাইটি কীভাবে npm
@ ec9fcc1
/lib/npm.js#L254 এর সাথে কাজ করে তা রয়েছে:
path.resolve(process.execPath, '..', '..')
ec9fcc1
/Lib/install.js#L521 দেখুন :
var globalPackage = path.resolve(npm.globalPrefix,
'lib', 'node_modules', moduleName(pkg))
যেখানে /lib/config/defaults.js#L92-L105 এর globalPrefix
একটি ডিফল্ট সেট রয়েছে:ec9fcc1
if (process.env.PREFIX) {
globalPrefix = process.env.PREFIX
} else if (process.platform === 'win32') {
// c:\node\node.exe --> prefix=c:\node\
globalPrefix = path.dirname(process.execPath)
} else {
// /usr/local/bin/node --> prefix=/usr/local
globalPrefix = path.dirname(path.dirname(process.execPath))
// destdir only is respected on Unix
if (process.env.DESTDIR) {
globalPrefix = path.join(process.env.DESTDIR, globalPrefix)
}
}
$HOME/.npm-global/lib/node_modules