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