如何使用browserify创建的bundle文件?

时间:2016-05-27 05:32:15

标签: javascript frontend browserify web-frontend

我制作了4个javascript文件,A,B,C,D,它们将导出4个模块A,B,C,D。它们的依赖性是A-> B-> C-> D.我键入命令

browserify A.js -o bundle.js

并创建包含A,B,C,D的包文件。在html文件中,我得到了

<script src="bundle.js"></script>
<script src="client.js"></script>

在client.js中,我得到了

var a = new A();

控制台将输出未定义A的错误。 但是,如果我删除所有js文件中的'require'和module.exports并在html文件中执行此操作,client.js将起作用

<script src = "D.js"></script>
<script src = "C.js"></script>
<script src = "B.js"></script>
<script src = "A.js"></script>
<script src = "client.js"></script>

有没有人对这个问题有任何想法?

2 个答案:

答案 0 :(得分:1)

您必须创建一个standalone包,它将向全局执行上下文添加一个变量,这是通过--standalone <name>选项

完成的。
browserify A.js --standalone A -o bundle.js

答案 1 :(得分:0)

除了Mauricio提出的独立选项外,您还可以使用browserify创建一个require函数,以便在浏览器中使用require函数。

browserify -r ./A.js:a_module ./B.js ./C.js ./D.js -o bundle.js

然后你的client.js文件可以这样做:

var a_module = require('a_module');
var a = new a_module.A();

这是external requires选项。