问题是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以这种方式加载文件以及如何更改它?
答案 0 :(得分:2)
Browserify将按顺序加载您的模块,但您必须注意依赖全局范围来解析其依赖关系的浏览器脚本。
Bootstrap只引用$
并期望它解析为jQuery,所以试试这个jazz将jQuery泄漏到全局范围:
var jquery = require('jquery');
global.$ = global.jQuery = jquery;
require('bootstrap-sass');