在Webpack 2中加载了ProvidePlugin的jQuery在路由更改后仍无法工作

时间:2017-12-18 13:36:42

标签: javascript jquery angular webpack webpack-plugin

我在Angular4工作,我正在使用Webpack设置来构建应用程序。我想在我的项目中使用jQuery,所以我搜索了它,发现Webpack提供的ProviderPlugin全局加载模块。

但是,我面临的问题有点奇怪;第一次页面加载页面工作正常,所有与jQuery相关的代码都可以正常工作,但是当我更改页面或路由时,jQuery失去了它的功能,后续的页面也没有按预期工作。我错过了什么,我用于插件的代码是标准的

new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' })

我正在寻找其他解决方案,如果有其他方法可以做,请提及它将是一个很大的帮助。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

您还可以使用将创建html页面的HtmlWebpackPlugin。并设置inject:true。因为您可能发出的问题是当您尝试访问另一个页面时未声明jquery,因此您需要一个具有jquery的主模板页面,并从该模板创建下一个html页面。示例:

new HtmlWebpackPlugin({
  filename: 'index.html',
  template: 'index.html',
  inject: true
})

所以在npm下载软件包,配置,安装然后设置。

此外,您可以使用以下方法编辑jquery插入:

new webpack.ProvidePlugin({
  $: 'jquery',
  jquery: 'jquery',
  'window.jQuery': 'jquery', 
  jQuery: 'jquery'
})