我想使用browserify,但我不想强迫库的用户这样做。换句话说,我希望生成的bundle.js定义同一页面上的其他脚本可以找到的东西。我尝试过但失败了:
browserify -o bundle.js src/if.js
其中:
::::::::::::::
index.html
::::::::::::::
<script src="bundle.js"></script>
<script>
function go() {
document.getElementById("victim").innerHTML=C();
}
</script>
<body onLoad="go();">
<div id='victim'>Foo</div>
</body>
::::::::::::::
src/if.js
::::::::::::::
var C = require("./c");
::::::::::::::
src/c.js
::::::::::::::
var A = require("./a");
var B = require("./b");
module.exports = function () { return A() + B(); };
::::::::::::::
src/a.js
::::::::::::::
module.exports = function () { return 10; };
::::::::::::::
src/b.js
::::::::::::::
module.exports = function () { return 20; };
失败,出现“参考错误:C未定义。”
我不介意强迫HTML及其脚本的作者输入一些奇怪的东西,但我觉得没有权力强迫他在他的构建过程中包含browseriy。
我该怎么做?
答案 0 :(得分:1)
宾果! if.js应该阅读
global.C = require("./c");