Javascript 具有可选依赖项的UMD标头
我的库中有一个可选的依赖项,我想通过UMD/AMD头导入它,就像:Javascript 具有可选依赖项的UMD标头,javascript,amd,Javascript,Amd,我的库中有一个可选的依赖项,我想通过UMD/AMD头导入它,就像: (function(root, factory) { if (typeof exports === "object") { module.exports = factory(require('proj4')); } else if (typeof define === "function" && define.amd) { define(['proj4'], factory); } e
(function(root, factory) {
if (typeof exports === "object") {
module.exports = factory(require('proj4'));
} else if (typeof define === "function" && define.amd) {
define(['proj4'], factory);
} else {
root.ol = factory(root.proj4);
}
}(this, function(proj4) {
...
// proj4 is an "optional" dependency, just like a plugin
if('function' === typeof proj4){
// use proj4 within here
}
});
上述定义的问题是,当proj4
不可用时,这将不起作用,这是一种完全有效的情况。我觉得我在这里遗漏了一些明显的东西……有没有关于如何处理这种情况的“标准”解决方案
我是说…我想我能做的就是
(function(root, factory) {
if (typeof exports === "object") {
module.exports = factory();
} else if (typeof define === "function" && define.amd) {
define([], factory);
} else {
root.ol = factory();
}
}(this, function() {
var proj4 = null;
try {
proj4 = require('proj4');
} catch(e) {
// loading failed
}
...
// proj4 is an "optional" dependency, just like a plugin
if('function' === typeof proj4){
// use proj4 within here
}
});
这是要走的路还是有更好的解决方案
Thx