2016-04-09 20 views
0

'da .env veya localstorage dosyasını bulamıyor dotenv ve node-localstorage tabanlı küçük bir düğüm uygulaması oluşturdum. Uygulamamın global olması gerekiyor.Genel düğüm uygulamam, proje klasörü

Modül klasöründen başlatmaya çalıştığımda sorun olmaz. Tüm dosyalar bulunur ve her şey yolunda. Modül klasörünün dışından başlatmayı denediğimde, uygulamam bu modüllerle ilgili herhangi bir dosya bulamadığından şikayetçidir.

Bu sorunu gidermek için package.json dosyasında bir şey yapılandırmalı mıyım?

+0

Not: Dosya yolları * Geçerli çalışma dizini * ([ 'process.cwd()'] (https://nodejs.org/ göredir dist/son-v5.x/docs/aPI/process.html # process_process_cwd)). Başvurunuzu başlatırken kullanılan çalışma dizinini garanti edemezseniz, mutlak bir yol sağlamanız gerekecektir. –

cevap

4

Varsayılan olarak, dotenv ortam dosyanıza erişmek için .env yolunu kullanır (source). Bu yol, uygulamanıza başladığınız yere göre olacaktır. Örneğin, geçerli çalışma dizininiz /somedir ise ve uygulamanızı node /path/to/your/app.js kullanarak çalıştırırsanız, dotenv muhtemelen mevcut olmayan bir /somedir/.env dosyasını arar.

Bunu düzeltmek için, aşağıdakileri kullanabilirsiniz:

var dotenv = require('dotenv').config({path: '/path/to/your/project/.env'}); 
+0

Aldığım {[Hata: ENOENT: böyle bir dosya veya dizin yok, '.env'] yok errno: -2, code: 'ENOENT', syscall: 'open', yol: '.env'}. Ve uygulamanızı sadece grunt-cli gibi bir isim ile başlatmak istiyorum. Bu yüzden bin özelliğini package.json dosyasına koydum. –

+0

.env dosyanızı nasıl kullanıyorsunuz? (node ​​betiğinden, homurdanan görevden) Ona atıfta bulunurken, './. env' (' '/') ile mi kullanıyorsunuz? – christophetd

+0

Önemli anahtarları kaydetmek için dotenv paketini kullanıyorum. Yüklediği paketi hiçbir şey yapmıyorum. https://www.npmjs.com/package/dotenv –