我正在尝试将我的browserify供应商库与我自己的代码分开。我运行了以下(简化):
browserify -r angular -o app/dist/vendor.js
browserify -x angular app/js/main.js -o app/dist/app.js
当我加载我的应用时,我得到Error: Cannot find module 'angular'
。
如果我将它全部捆绑为browserify app/js/main.js -o app/dist/app.js
,一切正常。我的main.js很简单,看起来像:
var angular = require('angular'), app = require('./app');
angular.bootstrap(document,[app.name]);
这是它遇到的第一行require('angular')
。
是的,我确实为angular设置了一个简单的垫片,并在package.json中将browser
条目映射到我的角度垫片路径,以便它正常工作(或者它不会在所有一个案例)。
我还尝试使用一些日志手动编辑vendor.js和app.js以查看它们的运行方式。看起来app.js的包装函数(是,IIFE)首先运行,然后是vendor.js的包装器。并且,我多次验证了vendor.js的脚本标记是第一个,然后是app.js的标记。
我是否可以与vendor.js比app.js更大(1.5个数量级)的事实有关,所以app.js首先完成加载?我怀疑它,或者jquery或angular的每个有序脚本标签都会破坏,但我不知道。
答案 0 :(得分:0)
没关系,我明白了。结果是2个标签是自动生成的。这导致它们是异步的,并且浏览器可以根据完成顺序自由地执行它们所需的操作。