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模块映射到全局jQueryvariables:

 { externals: { // require("jquery") is external and available // on the global var jQuery "jquery": "jQuery" } } 

由Webpack创build的结果模块将简单地导出现有的全局variables(为了简洁,我在此省略了大量的内容):

 { 1: function(...) { module.exports = jQuery; } } 

我尝试了这一点,它就像描述的那样工作。