问题是 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文件,其中引导脚本是第一个,jquery是第二个。这会导致 $ is undefined 错误,当然还会导致引导脚本无法工作,因为它们依赖于 jquery。
那么,为什么 Browserify 以这种方式加载文件以及如何更改它?
最佳答案
Browserify 将按顺序加载您的模块,但您必须注意依赖全局范围来解决其依赖关系的浏览器脚本。
Bootstrap 只是引用 $
并期望它解析为 jQuery,因此通过将 jQuery 泄漏到全局范围来尝试这个爵士乐:
var jquery = require('jquery');
global.$ = global.jQuery = jquery;
require('bootstrap-sass');
关于javascript - Browserify 更改依赖项的加载顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019133/