试图捆绑许多js文件时,Browserify无法find模块

这是我第一天做节点,我有一些问题,试图捆绑一些js文件。

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

这是我想要压缩到静态/ 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; 

当我运行browserify -r ./app/main:app > static/bundle.js ,文件bundle.js是使用app / main.js中的脚本创build的。 它按预期工作。

但是当我运行browserify -r ./app/collections/movies.js:movies \ -r ./app/models/movie.js:movie > static/bundle.js ,它会创build一个空的bundle.js并显示:

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

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

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

可能考虑join./到你的path:

 var Movie = require('./models/movie'); 

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

对于来自search引擎的用户:

这可能是因为你正在使用一个mac,而你在使用这个文件时没有使用正确的大小写。

这在mac中是等效的:

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

但不是以centO为例。

如果你使用你的debugging器,并进入require调用,你会发现自己在一些缩小的代码(通常)。

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

转到您的控制台并检查t[o][1]

这将向您显示您的模块的正确path的列表。

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

如果这变得太混乱,请暂时取消编译的bundle.js文件中的第一行(我在PhpStorm中使用alt-cmd-lbundle.js试。