2014-10-11 17 views
12

main.js numaralı bir web-projesi var. En üst kısımda benNode.js, aynı dizinde bir .js dosyası gerektiremiyor

var updater = require("./updater.js"); 

var ve main.js aynı dizinde updater.js adlı bir dosya var.

module.exports = "Hello!"; 

Ben dosyayı gerektirmez neden hiçbir fikrim yok: Ben app çalıştırdığınızda, ben

Uncaught Error: Cannot find module './updater.js' 

updater.js içinde bir satır vardır hatayı olsun. Aynı şeyi yapan başka bir proje gördüm. Ben require düzenli npm modülleri aynı main.js dan sadece iyi olabilir.

+0

'updater.js' için okuma izniniz var mı? – LotusH

+0

Ve düğümü nasıl başlattınız? Bu dizinde düğümü doğrudan "node main.js" yazarak mı başlattınız? Bazı yardımcıları kullandıysanız, 'cwd' değişmiş olabilir. – LotusH

+0

, "main.js" nin bulunduğu dizinde 'node main' kullanıyor, bu hatayı attığında veya 'main.js'de farklı bir komut dosyasında bir modül olarak yükleniyor musunuz? –

cevap

16

Bunun nedeni, node-webkit kullanarak uygulamanızı (main.js) çalıştırdığınızda, kök (çalışma) dizini index.html'nin bulunduğu yerdir, bu nedenle './', bu dizine karşılık gelen dizini belirtir. . içindedir dan modülü talebinde hangi dosya

kolayca resolve method in 'path' node module kullanarak bu sorunu çözmek ve çalışma dosyasında gerektiren yönteme ondan çıktı sağlayabilir

Basitçe aşağıdakileri yapın:

var path = require('path'); 
var updater = require(path.resolve(__dirname, "./updater.js")); 

DÜZENLEME: info globa l düğüm nesnesi '__dirname' (ve diğerleri) tarafından here bulunabilir.

+0

Plus 1 – SeanRamzan

İlgili konular