【发布时间】:2018-09-22 13:43:34
【问题描述】:
我正在尝试使用 Webpack 4 使内联 JavaScript 可以访问 jQuery 插件。
我正在使用PluginProvider 使 jQuery 可用于我的网站:
plugins: [
new webpack.ProvidePlugin({
"$": "jquery",
"jQuery": "jquery"
}),
],
这工作正常,我可以从包含我的包的任何页面访问 jQuery。
我尝试通过创建一个名为 vendor.js 的包来添加 bootstrap-datepicker,其中包含以下内容:
import 'bootstrap-datepicker';
我可以从vendor.js 包中调用$('input').datepicker(),但是如果我尝试使用内联<script> 调用它,我会得到:
Uncaught TypeError: $(...).datepicker is not a function
如何配置 Webpack 4 以使 bootstrap-datepicker 可用于全局范围?
更新
我已在此处上传了演示此问题的源代码:https://github.com/LondonAppDev/webpack-global-jquery-issue
看来问题是第二个包导入是在没有 datpicker 附加组件的情况下重新添加 jQuery。有没有办法解决这个问题?
【问题讨论】:
-
你能创建一个小 git repo 来重现你的问题,这样我就可以更容易地解决它
-
嘿@Legends,当然!我在这里推了这个例子:github.com/LondonAppDev/webpack-global-jquery-issue
-
抱歉,我在您的存储库中找不到您的 vendor.js 包。但是我可以在您当前的 repo 中看到问题,那就是您将 main.js 作为入口点,这是错误的。在 webpack 4 中,入口点仅适用于真正的入口点——没有像 wp3 和 CommonsChunkPlugin 这样的供应商脚本。
-
只需更新您的存储库并重新创建您帖子中提到的问题。
-
我也遇到了这个问题,第二个包导入是在没有安装其他插件的情况下重新添加 jQuery 到全局 jQuery 变量。有人知道解决方案吗?
标签: javascript jquery webpack webpack-4