I'm developing a small app as practice using node.js, Backbone, and socket.io, and I've managed to get something working locally (foreman start correctly starts the app with no errors). However, when deploying to heroku, I'm getting issues because my models.js file (used by the client and the server) requires Backbone. I'm sure it's something simple to get it to find it, but I'm new to node and newer to Backbone.
In my main app.js file (served by node), I have the vars
var Backbone = require('backbone'),
_ = require('underscore')._;
I also have a models.js file which is required by app.js as follows:
var models = require('./public/js/models.js');
(this file is also required by the client). In models.js, I start with the code
var server = false;
if (typeof exports !== 'undefined') {
server = true;
Backbone = require('Backbone');
_ = require('underscore');
}
And I think this is where it's getting stuck. Apologies if this isn't the correct information to provide (the whole project can be found at https://github.com/kevadsett/testHeroku). Any help would be very much appreciated, as it's frustrating to have gotten through all the learning and development only to be scuppered at the upload stage!
I think the issue might be just that you're trying to import a nonexisting modules:
Backbone = require('./Backbone');
_ = require('./underscore');
Try instead:
Backbone = require('backbone');
_ = require('underscore');
I didn't test it with your application, but principally this should work.