webpack 如何全局暴露别人的库了?

发布于 2022-09-12 02:18:11 字数 259 浏览 15 评论 0

要用第三方插件aa, 本地npm install aa --s 后。
在main.js 中 import AA from "aa" 可以打印出AA的。

我希望把AA 在各个 vue 模块中 使用。 希望全局暴露这个函数名。

在main.js 中下面两种可行,但不是我要的。
不希望手动绑到vue 原型上。
也不希望手动这样 window.AA ==AA 。

怎么做到,谢谢。
这种全局引入功能是否与 插件本身内部的实现情况有关系。?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

○闲身 2022-09-19 02:18:11

关键看你插件的使用场景是什么,不考虑原型,那可以考虑全局混入它 Vue.mixin()

于我来说 2022-09-19 02:18:11

如果你只是用aa的某一个方法,可以用vue的inject

烙印 2022-09-19 02:18:11

webpack 有3中方法暴露全局变量, 根据你的要求,用providerPlugin比较符合

  1. expose-loader 暴露到window 对象上
  2. providerPlugin 给每一个文件提供 $,但是在全局变量中没有,文件注入的方式
  3. externals 配置,引入不打包,以script 标签引入
// 1
rules: [
    {
     test:require.resolve('jquery'),
     use:"expose-loader?$"
    },
]
  
// 2
plugins:[
      new webpack.ProvidePlugin({
         $:'jquery'
     })  
],
// 3 
externals:{ 
  jquery: 'jQuery', // 
},
挽清梦 2022-09-19 02:18:11

这个的话, 可以去看看dva这个库,他就全局暴露了其他人的库。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文