在尝试捆绑许多js文件时,Browserify无法找到模块

Ric*_*eda 12 ssh node.js browserify

这是我第一天做节点,我在尝试捆绑一些js文件时遇到了一些问题.

MyFolder
|-- app (folder)   
|  |-- Collections (contains: movies.js)   
|  |-- Models (contains: movie.js)  
|  |-- node_modules  
|-- main.js  
|-- node_modules (folder)    
|-- static (folder)  
Run Code Online (Sandbox Code Playgroud)

这是我要压缩成static/bundle.js的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;
Run Code Online (Sandbox Code Playgroud)

当我运行browserify -r ./app/main:app > static/bundle.js文件时,使用app/main.js中的脚本创建bundle.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'  
Run Code Online (Sandbox Code Playgroud)

我的文件夹app/node_modulesln -sf ../models .和同步ln -sf ../collections .

问题1:任何提示我做错了什么?
问题2:如果static/bundle.js存在.是否再次运行browserify会覆盖该文件?在我的本地测试它不会覆盖,所以我应该每次删除此文件进行更新?

che*_*pus 24

可以考虑添加./到您的路径:

var Movie = require('./models/movie');
Run Code Online (Sandbox Code Playgroud)

请参阅:如何使用browserify捆绑骨干应用程序?


Sum*_*aha 9

对于来自搜索引擎的人:

可能是您正在使用Mac而您在需要文件时没有使用正确的案例.

这相当于mac:

require('./someFile');
require('./somefile'); 
Run Code Online (Sandbox Code Playgroud)

但不是以中心为例.

  • 这次真是万分感谢.这就是为什么导入包含错误大写字母的包正在我的OS X dev机器上工作但不在我的Linux服务器上. (3认同)