Browserify 更改依赖项的加载顺序

Browserify change the order the dependencies are loaded

问题是 Browserify 在加载 jquery.

之前加载了 bootstrap 的 javascript

我的 package.json

里有这个
"scripts": {
    "build": "browserify app/scripts/main.js -o app/scripts/bundle.js"
},

并且我在我的 main.js 文件中需要这样的依赖项:

var $ = require('jquery');
var bootstrap = require('bootstrap-sass');
var value = require('./test.js');

在我 运行 npm 运行 build 之后,我得到了我的 bundle.js 文件,其中 bootstrap 脚本是第一个 jquery 是第二个。这会导致 $ is undefined 错误,当然还会导致 bootstrap 脚本无法正常工作,因为它们依赖于 jquery.

那么,为什么 Browserify 以这种方式加载文件,我该如何更改它?

Browserify 会按顺序加载你的模块,但你必须注意依赖全局范围来解决它们的依赖关系的浏览器脚本。

Bootstrap 仅引用 $ 并期望它解析为 jQuery,因此通过将 jQuery 泄漏到全局范围来尝试此爵士乐:

var jquery = require('jquery');
global.$ = global.jQuery = jquery;

require('bootstrap-sass');