Vue build没有包含我输出.js文件的函数



在开发模式下运行良好,但在构建过程之后,vue不包括app.js输出文件中的setupToken函数。

// App.vue
//...
import { setupToken } from '@/api
export default {
mounted () {
this.setupToken() // TypeError: this.setupToken is not a function
}
}
// @/api.js
import { mande } from 'mande'
export const postsAPI = mande(`${process.env.VUE_APP_ROOT_URL}/api/v1/posts`)
export const setupToken = ({ token }) => {
postsAPI.options.headers.Authorization = 'Bearer ' + token
}

我猜是webpack配置的问题(我使用默认配置(,但不确定如何修复它。

App.vue导出的对象上不存在

setupToken

您正在从@/api导入setupToken,因此必须直接调用它,即setupToken(),而不是作为实例方法,例如this.setupToken()

WebPack发现您没有使用从@/api导入的方法(因为您将其作为实例方法进行调用(,因此它的树将其抖掉。

顺便说一句,试着使用TypeScript,它会让你知道那个错误。

  1. main.js中导入api.js
import Vue from 'vue'
import App from './App.vue'
import api from './api'

Vue.config.productionTip = false

new Vue({
api,
render: function (h) {
return h(App)
},
}).$mount('#app')
  1. 修改api.js
import Vue from 'vue'  
Vue.mixin({
methods: {
setupToken({ token }) {
postsAPI.options.headers.Authorization = 'Bearer ' + token
}
}
}

最新更新