webpack+vue组件体系中如何让函数全局可用?

我有一个工具函数aaa()放在tool.js中,想让所有vue组件都可以使用。但现在只在app.js中可以使用,在foot.vue中就用不了。要如何全局可用?

index.html

<body>
    <div id="app">
        <router-view :sc_data="$route.json_data"></router-view>
        <foot></foot>
    </div>
    <script src="dist/bundle.js"></script>
</body>

app.js

import {aaa } from './tool.js'
import foot from './vue/foot.vue'
aaa("bbb")    //可用

tool.js

export {aaa}

function aaa(n) {
    console.log("aaa"+n);
}
阅读 4.8k
4 个回答

入口文件

import Vue from 'vue'
import tool from './tool.js'

Vue.prototype.$tool=tool;

然后在.vue 中这样使用

method:{
    dosomething() {
        this.$tool.aaa('bbb');
    }
}

window.aaa = aaa;

首先,你不应该有“让他全局可用”的想法,哪里需要哪里引入,明确依赖关系不是更好么?

其次,如果你就是执着的想把他全局化,那你可以试试:expose-loader

指令,use下就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题