【问题标题】:Export default was not found未找到导出默认值
【发布时间】:2018-02-10 05:13:21
【问题描述】:

我有一个 Vue 2 项目,我已经编写了一个简单的函数来转换日期中的月份,我想将它导入到我的一个组件中,但出现错误:

在“@/utils/date-translation”中找不到导出“默认”(导入为“translateDate”)

src 文件夹的相对文件路径是正确的,我正在导出这样的函数:

export function translateDate(date) {
  // my code
}

然后我像这样在组件中导入它:

import translateDate from '@/utils/date-translation'

我做错了什么?

【问题讨论】:

标签: javascript import module ecmascript-6 vue.js


【解决方案1】:

也许你有两个同名文件。例如“test.vue”和“test.js”

【讨论】:

    【解决方案2】:

    在我的情况下,我必须删除导入组件周围的“{”和“}”:

    import { CustomComponent } from './CustomComponent';
    

    import CustomComponent from './CustomComponent';
    

    【讨论】:

    • 我必须添加{} 才能删除该消息
    • 也为我工作。但为什么呢?
    • 我删除了 {} 但我不知道为什么这样可以解决这个问题,我使用的是 Laravel8 和 vue 2。
    【解决方案3】:

    您需要在 vue.config.js 中设置符号链接设置

    config.resolve.symlinks(false);
    

    【讨论】:

      【解决方案4】:

      或者如上所述指定default,或者如果您尝试从同一个文件中导出多个项目,则需要使用大括号将它们导入。

      所以你会:

      export function doWork(){}
      export const myVariable = true;
      

      然后您将它们导入到单独的文件中:

      import { doWork, myVariable} from "./myES6Module"
      

      【讨论】:

      • 当我使用您提供的代码时,我遇到了这个问题:"export 'default' (imported as 'doWork') was not found in './mymodule'
      • 那是因为你没有导出你想在你的模块中导出的东西,或者你使用了不同的名字。使用命名导出时,您需要在两个文件中使用相同的名称。
      • 如果我的函数如下所示:export const function = (arg) => { }
      • 我使用花括号,并导出函数。仍然收到此错误
      【解决方案5】:

      您必须明确指定default

      export default function translateDate(date) {
         ..
      }
      

      【讨论】:

        猜你喜欢
        • 2019-09-08
        • 2017-07-09
        • 1970-01-01
        • 2019-09-07
        • 1970-01-01
        • 2019-11-16
        • 2018-07-14
        • 1970-01-01
        • 2020-12-03
        相关资源
        最近更新 更多