2016-03-28 25 views
2

konsol node yılında: require('path') veya require('assert') => komutu (dosyaya mutlak yol)dosyaya tam yolunu bilmek nasıl bu gerekli olduğunu() yapmam

tarafından yüklendi hangi dosyanın tam olarak öğrenmek için nasıl

Her yerde belirleyici bir cevap bulamadım ve kendime gelemedim ... Olması gerekenden daha kolay olacağını düşündüm ...

+0

Çevrimiçi PHP kılavuzundaki realpath() yöntemine bakın. :-) –

cevap

1

Bu kadar basit olduğunu sanmıyorum Bunu umuyorduk ama require nesnesini kullanarak bunu yapabilirsiniz:

// Load up some modules 
var _ = require('lodash'); 
var natural = require('natural'); 

// These are where Node will go looking for the modules above 
console.log('Paths:'); 
console.log(require.main.paths); 

// You can print out the id of each module, which is the path to its location 
console.log('Module IDs:'); 
require.main.children.forEach((module) => { 
    console.log(module.id); 
}); 

Çıktı: Bildiğim kadarıyla modül kimlikleri söyleyebilirim

$ node index.js 

Paths: 
[ '/Users/tyler/Desktop/js_test/node_modules', 
    '/Users/tyler/Desktop/node_modules', 
    '/Users/tyler/node_modules', 
    '/Users/node_modules', 
    '/node_modules' ] 

Module IDs: 
/Users/tyler/Desktop/js_test/node_modules/lodash/lodash.js 
/Users/tyler/Desktop/js_test/node_modules/natural/lib/natural/index.js 

sırayla bu size require onları olacaktır, bu yüzden size ne için dinamik modül kimlikleri aracılığıyla endeksler ile çalışmak veya arama gerekir arıyoruz.

+0

Teşekkür ederim, ama bu benim için işe yaramıyor çünkü 'require.main' undefined ... nedenini biliyor musun? – davidhq

+0

Sadece 'console.log (required)' yapıp nesnenin – Tyler

+0

gibi göründüğünü görüyorum, bunu yaptığımda 'main' özelliği' undefined' olduğunu görüyorum .. bu anormal mi? Düğümü çalıştırıp aynı şeyi yapabilir misin? 'Require.main'inizin değeri nedir? – davidhq

İlgili konular