当前位置: 首页 > 知识库问答 >
问题:

为什么导入/导出语句不起作用?

景安翔
2023-03-14

所以我有两个文件:

fo1

const a = 2;
export {a};

foo2

import a from "./foo1.js";
console.log(a);

这两个文件都是用html:

    <script src='./scripts/foo2.js' type='module'></script>
    <script src='./scripts/foo1.js' type='module'></script>

脚本一运行就会抛出以下错误:

<code>未捕获的语法错误:请求的模块'/“foo2.js”不提供名为“default”的导出

共有2个答案

荀俊迈
2023-03-14

如果要从 foo1 导出,则无需添加两个 js 文件,只需要要导入的文件。试试这样一种方式:

// foo1.js
export const a = 2;

// foo2.js
import { a } from "./foo1.js";
console.log(a);
html prettyprint-override"> <script src='./scripts/foo2.js' type='module'></script>
高承望
2023-03-14

您的导入方式仅适用于默认的导出/导入。所以有两种方法可以修复代码:

  1. 更改导入语句

从“./fo1. js”导入一个;

(不使用默认导出)

导出默认a;

然后,在导入时,您可以执行任何操作,因为默认导出仍然是a

从“./foo1.js”导入 a;从“./foo1.js”导入 aWithNewName;

 类似资料:
  • 这可能是个愚蠢的问题,但我无论如何也无法解决。我有一个JavaScript文件,其中包含我想要导出的各种函数。 当我调用这个方法(使用mocha)时,我得到一条错误消息“export function AddNumbers(…numbers)Unexpected token export”。该项目构建为ES6。有人知道我做错了什么吗? 最好的问候,托斯顿

  • 我和同事一起创建了一个Angular 5应用程序。我为我的所有界面创建了一个文件夹,并按功能进行分组。然而,我没有在它们上包含任何导出符号,并且在使用它们时,我从不需要导入它们……它们只存在,不会产生任何编译错误。我喜欢这种方式,因为它使代码更干净,但我只是在利用一些bug吗?我的同事以“正确”的方式完成了它,并且需要在任何时候导入他想要使用的界面。有什么想法吗?您应该如何创建存在于单独文件中的接

  • 我试图从文件“paddle.JS”中导入一个JS类,以便在另一个文件“game.JS”中使用(没有使用JS库或框架,只是纯简单的VanillaJS),我似乎不明白为什么这个导入/导出不起作用。我看过太多的例子和教程,我完全按照他们说的做,但它就是不起作用。这可能是一个愚蠢的问题,但任何帮助都是感激的。 这是我正在学习的一个YT教程,我基本上是在Paddle.js的顶部添加“导出默认类Paddle”

  • 我需要理解React中的导出和导入语句(可能涉及使用HOC) 因此,我有一个更高的组件,称为,如下所示 在我们的app.js中,我们做了如下操作 现在,在Export语句中,我知道他传递的是两个参数,我们的withClass函数需要这两个参数作为参数,但是他难道不应该在中导入一些东西吗?我们的如何接收这些参数? 另外,我们的返回函数(在WithClass.js中)如何访问这里的道具?(例如,我们将

  • 问题内容: 我是Java的新手,正在尝试学习速记语句的概念。 我想出了下面的代码。但是,该代码将无法编译,并在(即?:)语句旁边显示错误。 有人可以告诉我为什么它不起作用吗? 对不起,如果我的问题对某些人听起来很愚蠢。我是Java新手。 在此先感谢您的帮助! 问题答案: 三元表达 是一个 表达式 ,而不是一个语句,因此不能在需要语句的地方使用。 您可以这样写: 因为这是一个声明。

  • 问题内容: 建议不要中使用。 可以分享原因,以便下次避免这样做吗? 问题答案: 因为它将很多东西放到你的命名空间中(可能会遮盖以前导入的其他对象,你对此一无所知)。 因为你不完全知道要导入的内容,而且不容易找到从哪个模块导入的特定内容(可读性)。 因为你不能使用像静态检测代码中的错误之类的出色工具。

  • 问题内容: 我已经回答了有关Python中绝对导入的问题,我认为基于阅读Python 2.5 changelog 和随附的PEP可以理解。但是,在安装Python 2.5并尝试制作正确使用的示例时,我意识到事情还不清楚。 直接从上面链接的更改日志,此语句准确总结了我对绝对导入更改的理解: 假设您有一个像这样的包目录: 这定义了一个名为的包,其中包含和子模块。 考虑main.py模块中的代码。如果执

  • 问题内容: 我似乎无法让绝对导入在python中工作。这是我的文件结构: foo.py: 我反而得到: 这到底是怎么回事?我觉得我缺少基本的东西。尽管这个例子很简单,但我需要绝对导入才能为实际项目工作,因此仅用相对导入替换导入是不可行的。我正在使用python 2.7.13 预先感谢您的任何见解! 问题答案: 由于未显示,因此我必须假设您正在运行,这会将脚本()的目录放在开始的位置,而实际上您希望