如何在webpack模块中加载备用jquery?

时间:2018-07-27 09:49:03

标签: javascript jquery twitter-bootstrap typescript webpack

我需要在我的node_modules中加载jQuery的替代版本。我有脚本的本地副本,但无法将其加载到我的webpack app.ts中。我已经删除了全局jQuery,并在我的webpack配置中解析了node_modules的路径,因为我不想从node_modules获得该版本。但是我不知道如何将加载的jquery传递给需要它的脚本。

我有多个入口点(app.ts),每个入口点都需要能够加载不同的jquery,因此我无法在webpack配置中定义jquery,因为我想使用相同的配置来处理所有入口点。

app.ts

import jquery from '../../../js/jquery-3.3.1.js';

// tried this but didn't help
// window.$ = jquery;
// window.jquery = jquery;

// these two require jquery but fail, it only works if I add back in
// the webpack config to find jquery in node_modules which is what I 
// don't want. popper.js has the same issue as jquery.
import '../../../js/popper-1.12.9.min.js';
import '../../../js/bootstrap-4.0.0.js';
import './js/jquery.matchHeight-min.js';

...

1 个答案:

答案 0 :(得分:1)

我认为有多种方法可以解决此问题。

  • 添加一些脚本。可以创建一个简单的函数,为不同的给定resolve.alias点设置不同的entry值。然后使用ProvidePlugin甚至imports-loader进行匀场并全局设置。 shimming docs
  • 使用expose-loader。这样,您就可以要求使用不同的脚本,但是它们都将使用相同的变量名公开。