Webpack:如何使用库依赖于另一个库作为模块?

时间:2017-05-18 02:09:31

标签: webpack

要使jquery.selection库工作,必须加载jquery库,因为jquery.selection具有IIFE(立即调用的函数表达式),这取决于{{1} }。通常,我们需要像

那样做
jquery

但是,如果我们使用<script type="text/javascript" src="jquery.min.js"> <script type="text/javascript" src="jquery.selection.min.js"> 并希望将webpack添加为模块,该怎么办?

jquery.selection

虽然import $ from 'jquery'; import 'jquery.selection'; 会毫无错误地执行,但在Chrome控制台中会出现以下错误消息:

Webpack

因为我们不应该篡改库,所以可能不会使用this解决方案。

1 个答案:

答案 0 :(得分:1)

jQuery需要是全球性的。你应该使用expose-loader使其成为全球性的。

如果您使用 webpack v1 ,请添加到webpack loader

{
   test: require.resolve("jquery"), 
   loader: "expose-loader?$!expose-loader?jQuery"
}

如果你使用 webpack v2 ,请添加到webpack规则

{
   test: require.resolve('jquery'),
   use: [{
      loader: 'expose-loader',
      options: 'jQuery'
   },
   {
      loader: 'expose-loader',
               options: '$'
   }]
}