2012-12-02 6 views
5

Mam aplikację działającą lokalnie, więc wiem, że kod działa. Jednakże, kiedy idę do wdrożenia w węźle jitsu, pojawia się błąd, że nie można znaleźć modułu lokalnego. Oto co mam: Konfiguracjawęzeł jitsu nie może znaleźć lokalnych modułów

pliku:

/index.js 
/config/config.js 

index.js

var cfg = require('./config/config.js'); 

Gdy próbuje wdrożyć węzła jitsu daje mi błąd:

Error: Cannot find module './config/config.js' 

Ponieważ cały ten kod działa lokalnie Nie wierzę, że to jest problem z kodowaniem. Mam wrażenie, że lokalne moduły nie muszą być zawarte w package.json, ale może robią to dla węzła jitsu? Czytam ich dokumentację, ale nie mogę znaleźć niczego specjalnego dla lokalnych modułów.

Dzięki!

Odpowiedz

10

Lokalne moduły, takie jak ta, powinny działać poprawnie, o ile nie masz ich w .gitignore lub .npmignore.

Moduły w katalogu node_modules wymagają dodania go do tablicy bundledDependencies w pliku package.json.

Łatwym sposobem sprawdzenia, czy plik jest uwzględniony w deploy, jest uruchomienie tar -tf $(npm pack).

+0

.gitignore miał tam podaną nazwę pliku config.js. Usunięcie tego z .gitignore rozwiązało problem. Dzięki! – nwkeeley

+2

Możesz również dodać plik '.npmignore', jeśli chcesz zachować go w' .gitignore' i zezwolić na to wyłącznie. '.npmignore' ma taki sam format jak' .gitignore', więc prosty '! ./ config/config.js powinien działać. – Sly

3

Miałem dokładnie ten sam błąd przy instalacji, ale spowodowany inną przyczyną źródłową. W przypadku, gdy ktoś potknie się na ten sam problem: setup

Plik:

/public/Data/TargetData.js 

app.js wymaga stwierdzenie:

var target = require('./public/data/TargetData.js'); 

Mój lokalny środowisko Mac OSX dozwolone różnicę kapitalizacji /data/ vs. /Data/ - serwer Nodejitsu nie.

+0

Dziękuję, że wysłałeś to, uratowałeś mi sporo czasu. –