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

节点。js:SyntaxError:无法在模块外部使用导入语句

施自怡
2023-03-14

我得到了这个错误SynTaxError:不能使用导入语句以外的模块时,试图从另一个javascript文件导入。这是我第一次尝试这样的东西。主文件是main.js,模块文件是mod.js

main.js:

import * as myModule from "mod";
myModule.func();

摩登派青年js:

export function func(){
    console.log("Hello World");
}

我怎样才能解决这个问题?谢谢

共有3个答案

杜诚
2023-03-14

我最近遇到了这个问题。这个解决方案与最受好评的答案相似,但有一些方法我发现对我有效。

在与模块相同的目录中创建包。json文件并添加“类型”:“模块”。然后使用“/myscript.js”中的import{func} 。使用节点运行时,导入样式有效。

徐新荣
2023-03-14

使用commonjs语法而不是es模块语法:

module.exports.func = function (){
    console.log("Hello World");
}

const myMod = require("./mod")
myMod.func()

否则,如果你想使用es模块,你必须按照Achraf Ghellach的回答去做

李胡媚
2023-03-14

为了使用导入语法(ESModules),您需要为包设置以下内容。json:

{"type": "module" }

如果您使用的Node版本早于13,则在运行程序时需要使用--experimental modules标志

node --experimental-modules program.js

并在包中添加{“type”:“module”}。json

希望有帮助!

 类似资料:
  • 我有一本书。节点js(07.10.19版本的node.js的最新版本)应用程序中的ts文件,带有导入节点模块而无默认导出。我使用这种结构:

  • 我有一个ApolloServer项目给我带来了麻烦,所以我想我可能会更新它,并在使用最新的巴别塔时遇到问题。我的“index.js”是: 当我运行它时,我得到了错误 首先,我试图做一些事情来说服TPTB*这是一个模块(没有成功)。所以我把“导入”改成了“要求”,这就奏效了。 但是现在我在其他文件中有大约24个“导入”给我同样的错误。 *我确信我的问题的根源是我甚至不确定是什么在抱怨这个问题。我有点

  • 提前感谢您的帮助。 这个问题似乎已经在其他地方被提出和回答,但我相信我已经尝试了所有这些解决方案,但没有取得真正的进展。 我试图为webdriverIO创建一个自定义记者。然而,当所有导入都运行时,我得到以下错误: 无法在模块外使用导入语句 如果我试图执行文件顶部的导入语句,则会在导入WebdriverTestrasER行上出现上述错误。我可以通过使用要求来解决这个问题,但是在从@wdio/记者导

  • 试图将用户模型中的“uuid”作为

  • 在测试其中一个功能时,我遇到了这种错误。到底是什么问题? /用户/user/websprojects/hsu/src/path finding/path finding。spec.js:1从'chai'导入{expect}^^^^^^ 语法错误:无法在WrapSafe(节点:内部/模块/cjs/加载器: 1018:16)的模块外使用导入语句。_compile(节点:内部/模块/cjs/加载器: 1

  • 我试图模拟一个外部模块(jwt_decode),对于感兴趣的人来说,我已经看到了许多如何使用Jest模拟外部节点模块的示例,无论是在测试套件中的所有测试,还是在每个测试的基础上。 我已经能够模拟依赖项,以便它模拟套件中所有测试的返回值,尽管缺省函数是我真正关心的全部。 这工作得很好,只是我想测试一个返回的令牌已经过期的场景,这样我就可以验证在出现这种情况时是否调度了某些Redux操作。 我想修改单