2012-12-02 69 views
5

我有一個應用程序在本地成功工作,所以我知道代碼的作品。但是,當我去部署到節點jitsu我得到一個錯誤,它無法找到本地模塊。以下是我有:節點jitsu無法找到本地模塊

文件設置:

/index.js 
/config/config.js 

index.js

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

當嘗試部署節點柔術是給我的錯誤:

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

由於所有這些代碼在本地工作我不相信這是一個編碼問題。我的印象是,本地模塊不需要包含在package.json中,但也許它們適用於節點jitsu?我閱讀他們的文檔,但找不到本地模塊的特殊內容。

謝謝!

回答

10

這樣的本地模塊應該可以正常工作..只要你沒有在.gitignore.npmignore

node_modules目錄中的模塊要求您將其添加到package.json文件中的bundledDependencies陣列中。

檢查文件是否包含在部署中的簡單方法是運行tar -tf $(npm pack)

+0

.gitignore在那裏列出了config.js文件名。從.gitignore中刪除該問題解決了該問題。謝謝! – nwkeeley

+2

如果你想保存在'.gitignore'中,並且完全允許它,​​你還可以添加'.npmignore'文件。 '.npmignore'遵循與'.gitignore'相同的格式,所以一個簡單的'!./ config/config.js'應該可以工作。 – Sly

3

我在部署時發生了完全相同的錯誤,但是由不同的根本原因造成。如果有人失足掉進了同樣的問題:

文件設置:

/public/Data/TargetData.js 

app.js需要聲明:

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

我本地的Mac OSX環境允許的市值差異/data//Data/ - Nodejitsu服務器沒有。

+0

男士感謝發佈這一點,爲我節省了一堆時間。 –