我正在尝试 webpack (http://webpack.github.io/ http://webpack.github.io/)看起来真的很不错,但我有点被困在这里了。
假设我正在为库 f.ex jQuery 使用 CDN。然后在我的代码中,我想要require('jquery')
自动指向全局 jquery 实例,而不是尝试将其包含在我的模块中。
我尝试过使用类似的插件IgnorePlugin
:
new webpack.IgnorePlugin(new RegExp("^(jquery|react)$"))
这适用于忽略该库,但它仍然表示当我运行 webpacker 时所需的模块“丢失”。
我需要以某种方式告诉 webpackjquery
应该从全球背景中获取。似乎是一个常见的用例,所以我有点惊讶文档没有专门针对这个。
根据Webpack 文档 https://webpack.js.org/configuration/externals/,您可以使用externals
配置对象上的属性“指定 Webpack 未解析的库的依赖项,但会成为输出的依赖项。这意味着它们是在运行时从环境导入的[原文如此]。”
该页面上的示例使用 jQuery 很好地说明了这一点。简而言之,您可以使用普通 CommonJS 风格的 jQuery:
var jQuery = require('jquery');
然后,在您的配置对象中,使用externals
属性将 jQuery 模块映射到全局jQuery
多变的:
{
externals: {
// require("jquery") is external and available
// on the global var jQuery
"jquery": "jQuery"
}
}
Webpack 创建的结果模块将简单地导出现有的全局变量(为了简洁起见,我在这里省略了很多内容):
{
1: function(...) {
module.exports = jQuery;
}
}
我尝试了一下,效果与描述的一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)