Подтвердить что ты не робот

Browserify не может найти модуль при попытке связывания многих js файлов

Это мой первый день, когда я делаю node, у меня возникают некоторые проблемы с попыткой связывания некоторых js файлов.

MyFolder
|-- app (folder)   
|  |-- Collections (contains: movies.js)   
|  |-- Models (contains: movie.js)  
|  |-- node_modules  
|-- main.js  
|-- node_modules (folder)    
|-- static (folder)  

Это содержимое js файлов, которые я хочу сжать в 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;

Когда я запускаю browserify -r ./app/main:app > static/bundle.js, файл bundle.js создается с помощью скриптов из app/main.js. Он работает так, как ожидалось.

Но когда я запускаю browserify -r ./app/collections/movies.js:movies \ -r ./app/models/movie.js:movie > static/bundle.js, он создает пустую строку bundle.js и показывает это:

Error: Cannot find module '/Users/MyFolder/app/models/movie.js:movie' from '/Users/MyFolder'  

Моя папка app/node_modules синхронизируется с ln -sf ../models . и ln -sf ../collections .

Вопрос 1: Любой намек на то, что я делаю неправильно?
Вопрос 2: Если static/bundle.js существует. Запускает ли браузер повторно перезаписывает файл или нет? В моих локальных тестах он не перезаписывается, поэтому я должен каждый раз удалять этот файл для обновления?

4b9b3361

Ответ 2

Для людей, поступающих из поисковых систем:

Возможно, вы используете mac, и вы не использовали правильный случай, требуя файл.

Это эквивалентно в mac:

require('./someFile');
require('./somefile'); 

Но не в centOs, например.

Ответ 3

Если вы используете ваш отладчик и входите в вызов require, вы окажетесь внутри некоторого мини-кода (обычно).

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require== ...

Перейдите на консоль и проверьте t[o][1]

Это покажет вам список правильных путей для ваших модулей.

Object {
    '<module name>' : <id>
    ...
}

Если это становится слишком запутанным, временно отключите первую строку в скомпилированном файле bundle.js (я использую alt-cmd-l в PhpStorm) и повторю попытку.