未找到导出默认值

Posted

技术标签:

【中文标题】未找到导出默认值【英文标题】: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'

我做错了什么?

【问题讨论】:

使用export default function... 并查看What is "export default" in javascript?的答案 What is "export default" in javascript?的可能重复 “我做错了什么?” 您正在尝试导入没有默认导出的模块的默认导出。该模块只有一个命名导出,translateDate。你应该看看When should I use curly braces for ES6 import? 接受的答案 【参考方案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) 
   ..

【讨论】:

以上是关于未找到导出默认值的主要内容,如果未能解决你的问题,请参考以下文章

导出默认值未在WebStorm中使用

无法使用Webpack 4和Babel 7导出默认值

EC6 中“导出默认值”之后的“要求”如何工作?

React:导出 const + 导出默认值 vs 导出默认值

JSX 中的“导出默认值”有啥作用?

带默认参数的模块导出