【问题标题】:Browserify change the order the dependencies are loadedBrowserify 更改依赖项的加载顺序
【发布时间】:2016-01-06 06:33:06
【问题描述】:

问题是 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 是第二个。这会导致 $ is undefined 错误,当然也会导致引导脚本无法正常工作,因为它们依赖于 jquery。

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

【问题讨论】:

  • 你确定 jquery 已经加载了吗?
  • 是的,jquery 已连接到我的 bundle.js 文件中。

标签: javascript node.js frontend browserify


【解决方案1】:

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

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

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

require('bootstrap-sass');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2014-11-19
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    相关资源
    最近更新 更多