Browserify更改加载依赖项的顺序

Browserify change the order the dependencies are loaded

本文关键字:顺序 依赖 加载 Browserify      更新时间:2023-09-26

问题是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运行构建我得到我的bundle.js文件,其中引导脚本是第一和jquery是第二。这会导致$ is undefined错误,当然,引导脚本不工作,因为它们依赖于jquery。

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

Browserify会按顺序加载你的模块,但是你必须注意那些依赖全局作用域来解析依赖关系的浏览器脚本。

Bootstrap只引用$并期望它解析为jQuery,所以尝试将jQuery泄漏到全局作用域:

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