2012-12-02 8 views
5

Tôi có một ứng dụng hoạt động thành công tại địa phương vì vậy tôi biết mã hoạt động. Tuy nhiên khi tôi đi đến triển khai đến nút jitsu tôi nhận được một lỗi mà nó không thể tìm thấy một mô-đun địa phương. Dưới đây là những gì tôi có:nút jitsu không thể tìm thấy mô-đun địa phương

file Setup:

/index.js 
/config/config.js 

index.js

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

Khi cố gắng để triển khai nút jitsu được đem lại cho tôi một lỗi:

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

Vì tất cả mã này hoạt động tại địa phương Tôi không tin đây là vấn đề mã hóa. Tôi theo ấn tượng rằng các mô-đun địa phương không cần phải được bao gồm trong package.json nhưng có lẽ họ làm cho nút jitsu? Tôi đọc tài liệu của họ nhưng không thể tìm thấy bất cứ điều gì đặc biệt cho các mô-đun địa phương.

Cảm ơn!

Trả lời

10

Mô-đun cục bộ như thế này sẽ hoạt động bình thường .. miễn là bạn không có trong .gitignore hoặc .npmignore.

Các mô-đun trong thư mục node_modules yêu cầu bạn thêm nó vào mảng bundledDependencies trong tệp package.json của bạn.

Cách dễ dàng để kiểm tra xem tệp có được đưa vào triển khai của bạn hay không là chạy tar -tf $(npm pack).

+0

.gitignore có tên tệp config.js được liệt kê trong đó. Xóa nó khỏi .gitignore giải quyết vấn đề. Cảm ơn! – nwkeeley

+2

Bạn cũng có thể thêm tệp '.npmignore' nếu bạn muốn giữ nó trong' .gitignore' và chỉ cho phép nó. '.npmignore' theo cùng định dạng với' .gitignore', do đó, một '! ./ config/config.js' đơn giản sẽ hoạt động. – Sly

3

Tôi đã gặp lỗi tương tự chính xác khi triển khai, nhưng do nguyên nhân gốc khác. Trong trường hợp bất cứ ai tình cờ vào cùng một vấn đề:

file Setup:

/public/Data/TargetData.js 

app.js yêu cầu tuyên bố:

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

môi trường Mac OSX địa phương của tôi cho phép sự khác biệt vốn hóa của /data/ so với /Data/ - máy chủ Nodejitsu không.

+0

Cảm ơn người đàn ông đã đăng bài này, đã lưu cho tôi một loạt thời gian. –