浏览文件顺序

Browserify order of files

我正在阅读 Patrick Mulder 的 Full Stack Web Development with Backbone.js,他介绍了 browserify 的使用。

他解释说我们必须编写一个 js 文件 /app/main.js,然后将其浏览器化为 static/bundle.js,我在捆绑它时没有遇到任何问题。但是我按照书中的例子发现了一些问题,我调试的第一件事就是将 the author working bundle.js 与我的进行比较。好吧,即使捆绑的 main.js 和其他 js 相同,bundle.js 也不相等。所以我想这是我问题的起点。

我的node版本是:v0.10.33,我的browserify版本是:8.0.1

正如书上所说,这是我用来从 main.js 生成 bundle.js 的命令:

browserify -r ./app/main.js:app > static/bundle.js

开始一些差异:

  1. 作者 main.js 位于 bundle.js 之上
  2. 我的main.js放在bundle.js
  3. 的底部
  4. 作者的第一行bundle.js以(function e(t,n,r)....
  5. 开头
  6. 我的第一行以 require=(function e(t,n,r)....
  7. 开头

main.js source code link 来自 git 存储库。和我一样准确。

来自 main.js 的代码是:

var Backbone = require('backbone');
var $ = require('jquery-untouched');
Backbone.$ = $;
var MoviesRouter = require('routers/movies');
$(document).ready(function() {
  console.log('init');
  var router = new MoviesRouter({el: $('#movies') });
  Backbone.history.start({
    pushState: true,
    root: '/'
  });
});

该代码与我使用的完全相同,正如书中所说。
这是一个 jsfiddle,我在其中粘贴了 bundle.js

中的代码

您遇到的实际问题是什么?不要担心捆绑包中的内容的细节,除非它没有按应有的方式执行。 #1 和 #2 如何影响您对捆绑包的使用?

#3 和#4 通过使用 -r (--require) 标志来解释。如果这样做,您的包将不会以 require=...:

开头
browserify ./app/main.js -o static/bundle.js

您是否试图向外部公开 ./app/main.js