我制作了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>
有没有人对这个问题有任何想法?
答案 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选项。