This is my first day doing node, I'm having some problems trying to bundle some js files.
MyFolder
|-- app (folder)   
|  |-- Collections (contains: movies.js)   
|  |-- Models (contains: movie.js)  
|  |-- node_modules  
|-- main.js  
|-- node_modules (folder)    
|-- static (folder)  
This is the content of js files I want to compress into static/bundle.js.
 // app/models/movie.js  
 var Backbone = require("backbone");
 var Movie = Backbone.Model.extend({
   defaults: {
     title: "default",
     year: 0,
     description: "empty",
     selected: false
   }
 });
 module.exports = Movie;
 // app/collections/movies.js  
 var Backbone = require("backbone");
 var Movie = require('models/movie');
 var Movies = Backbone.Collection.extend({
      model: Movie
 });
 module.exports = Movies;
When I run browserify -r ./app/main:app > static/bundle.js the file bundle.js is created with the scripts from app/main.js. It works as expected.
But when I run browserify -r ./app/collections/movies.js:movies \ -r ./app/models/movie.js:movie > static/bundle.js, it creates an empty bundle.js and shows this:
Error: Cannot find module '/Users/MyFolder/app/models/movie.js:movie' from '/Users/MyFolder'  
My folder app/node_modules is sync with ln -sf ../models . and ln -sf ../collections .
Question 1: Any hint what I'm doing wrong?
Question 2: If static/bundle.js exists. Does running browserify again overwrites the file or not? On my local tests it doesn't overwrite, so am I supposed to delete this file each time for update?
Might consider adding ./ to your path: 
var Movie = require('./models/movie');
see: How to use browserify to bundle a backbone app?
For people coming from search engines:
It might be that you are using a mac and you have not used proper case while requiring the file.
This is equivalent in mac:
require('./someFile');
require('./somefile'); 
But not in centOs for example.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With