vue.js - Vue 构建不包括我输出 .js 文件的函数

标签 vue.js webpack

在开发模式下工作正常,但在构建过程之后,vue 不包含 setupToken 函数(来自 @/api.js)到 app.js 输出文件。

// 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 配置的问题(我使用的是默认配置),但不知道如何修复它。

最佳答案

setupToken 在您从 App.vue 导出的对象上不存在。

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

WebPack 发现您没有使用从 @/api 导入的方法(因为您将其作为实例方法调用),因此它 tree-shakes出来吧。

顺便说一句,尝试使用 TypeScript,它会让您知道该错误。

关于vue.js - Vue 构建不包括我输出 .js 文件的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71068431/

相关文章:

reactjs - 浏览器列表错误: Unknown browser query `dead` in React/Express App

jquery - 未捕获的 TypeError : $(. ..).accordion 不是 wordpress 中的函数

azure - 使用 Azure Pipelines/releases 将 Vue 应用程序部署到 Azure 应用服务

vue.js - Vuetify 轮播图片加载

javascript - "TypeError: chart_js__WEBPACK_IMPORTED_MODULE_9__.default is not a constructor"

javascript - 外部 React 组件库 JSX Babel 无法编译

reactjs - React/SCSS 主体背景图像变为 [object Object]

javascript - 未捕获的语法错误 : Identifier 'o' has already been declared

javascript - Vue 单文件组件无法使用 webpack 正确加载

reactjs - `_Symbol.' for '` : Is that actually valid ES6? Webpack 从 React 源构建它