Webpack和外部库
我正在尝试webpack( http://webpack.github.io/ ),它看起来非常好,但我有点卡在这里。
说我正在使用一个CDN库,f.ex jQuery。 然后在我的代码中,我想让require('jquery')
自动指向全局jquery实例,而不是试图从我的模块中包含它。
我试过使用像IgnorePlugin
这样的IgnorePlugin
:
new webpack.IgnorePlugin(new RegExp("^(jquery|react)$"))
这可以忽略这个库,但是它仍然会说当我运行webpacker的时候需要的模块是“丢失”的。
不知何故,我需要告诉webpack,应该从全局上下文中取代jquery
。 看起来像一个常见的用例,所以我有点惊讶,文档没有针对这个具体。
根据Webpack文档 ,你可以使用configuration对象上的externals
属性来指定你的库的依赖关系,这些依赖关系不会被webpackparsing,而是成为输出的依赖关系,这意味着它们是在运行时从环境中导入的[原文如此] “。
该页面上的示例使用jQuery很好地说明了这一点。 简而言之,您可以在CommonJS风格中使用jQuery:
var jQuery = require('jquery');
然后,在你的configuration对象中,使用externals
属性将jQuery模块映射到全局jQuery
variables:
{ externals: { // require("jquery") is external and available // on the global var jQuery "jquery": "jQuery" } }
由Webpack创build的结果模块将简单地导出现有的全局variables(为了简洁,我在此省略了大量的内容):
{ 1: function(...) { module.exports = jQuery; } }
我尝试了这一点,它就像描述的那样工作。