Browserify更改加载依赖项的顺序

时间:2015-10-08 14:48:14

标签: javascript node.js frontend browserify

问题是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 run build 之后,我得到了我的bundle.js文件,其中bootstrap脚本是第一个,jquery是第二个。这导致$是未定义的错误,当然引导脚本不依赖于jquery而无法工作。

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

1 个答案:

答案 0 :(得分:2)

Browserify将按顺序加载您的模块,但您必须注意依赖全局范围来解析其依赖关系的浏览器脚本。

Bootstrap只引用$并期望它解析为jQuery,所以试试这个jazz将jQuery泄漏到全局范围:

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

require('bootstrap-sass');