2
我的应用程序依赖于库foolib
,图书馆foolib
对lodash的依赖,并通过var _ = require('lodash')
Lodash需要subdependency时本身意外注入到全球
需要foolib
结果lodash自身附加到窗口要求其
我发现,这是由于这样的:
// Some AMD build optimizers, like r.js, check for condition patterns like:
if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
// Expose Lodash on the global object to prevent errors when Lodash is
// loaded by a script tag in the presence of an AMD loader.
// See http://requirejs.org/docs/errors.html#mismatch for more details.
// Use `_.noConflict` to remove Lodash from the global object.
root._ = _;
添加一个调试器成为在调试器触发条件结果身体,但是造成的,如果要进入现在分支条件返回false
注销的define
值调试前添加一个控制台日志其显示为通过webpack:///(webpack)/buildin/amd-define.js?0bba
与
module.exports = function() { throw new Error("define cannot be used indirect"); };
/*****************
** WEBPACK FOOTER
** (webpack)/buildin/amd-define.js
** module id = 875
** module chunks = 2
**/
由于我用的WebPack建设内容被定义,似乎出人意料,与define
和define.amd
该项条件是真