返回介绍

ProvidePlugin

发布于 2019-05-27 04:54:35 字数 2794 浏览 983 评论 0 收藏 0

自动加载模块,而不必到处 importrequire

new webpack.ProvidePlugin({
  identifier: 'module1',
  // ...
})

or

new webpack.ProvidePlugin({
  identifier: ['module1', 'property1'],
  // ...
})

任何时候,当 identifier 被当作未赋值的变量时,module 就会自动被加载,并且 identifier 会被这个 module 输出的内容所赋值。(模块的 property 用于支持命名导出(named export))。

W> 对于 ES2015 模块的 default export,你必须指定模块的 default 属性。

使用:jQuery

要自动加载 jquery,我们可以将两个变量都指向对应的 node 模块:

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

然后在我们任意源码中:

// in a module
$('#item'); // <= 起作用
jQuery('#item'); // <= 起作用
// $ 自动被设置为 "jquery" 输出的内容

使用:jQuery 和 Angular 1

Angular 会寻找 window.jQuery 来决定 jQuery 是否存在, 查看源码

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

使用:Lodash Map

new webpack.ProvidePlugin({
  _map: ['lodash', 'map']
})

使用:Vue.js

new webpack.ProvidePlugin({
  Vue: ['vue/dist/vue.esm.js', 'default']
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文