从browserify bundle加载JS依赖项

时间:2015-07-07 02:09:25

标签: javascript node.js requirejs browserify

我有一个单页应用程序,它包含一个基于Browserify和Coffeescript的JS包。

在某个用例中,我需要创建一个adhoc页面(从SPA中分离),它需要访问一个库(特定于Kendo),这是浏览器化bundle的一部分,adhoc页面将有一些简单的JS基于剑道。

问题是如何在单页应用程序之外加载/访问库(如果我尝试加载它,浏览器会说找不到库)?

使用RequireJS可以是指定here的选项。但是,我不想仅仅为此目的使用另一个库。我认为必须有一种方法来要求"没有requireJS的库,因为它已经在单页应用程序中工作。

请帮忙..谢谢!

1 个答案:

答案 0 :(得分:1)

Browserify会在打包时将您的模块路径(如../moduleA/file.js)重写为内部模块ID 23

每个require语句也将被重写,如下所示:

var moduleA = require('../moduleA/file.js');

成为这个:

var moduleA = require(23);

要访问特定的库,您可以执行以下操作:

1)通过调试器找到内部id,然后通过它需要模块(这非常脆弱,因为内部id可能会随着每次构建而改变) 2)使用以下内容将另一个文件打包到您的包中:

var kendo = require('kendo');
window.kendo = kendo;

之后,您可以简单地将kendo作为页面全局访问。