我的库是用 webpack 构建的。libraryTarget 是 UMD。问题在于我的依赖项。例如我正在使用 jQuery。我的 webpack 配置如下所示:
// Only relevant config is shown below
module.exports = {
externals: {
"jquery" : "jquery"
}
};
在 AMD 环境中它可以工作。我可以毫无问题地要求:
define(['jquery'], function($) {});
但是,如果我想在非模块加载器环境中使用构建的文件,则会得到“$ 未定义”。当然解决方案是通过这种方式更改 webpack 配置:
// the Q is now upper case
"jquery" : "jQuery"
比它在非模块加载器环境中工作。但是这次它不再在 AMD 环境中工作了,因为 requirejs 尝试加载jQuery.js而不是jquery.js!
我该如何解决这个问题?