gpt4 book ai didi

javascript - 语法错误 : Cannot use import statement outside a module

转载 作者:行者123 更新时间:2023-12-03 14:58:08 24 4
gpt4 key购买 nike

我有一个 Apollo 服务器 给我带来麻烦的项目,所以我想我可能会更新它并在使用最新的 Babel 时遇到问题。我的“index.js”是:

require('dotenv').config()
import {startServer} from './server'
startServer()
当我运行它时,我得到了错误
SyntaxError: Cannot use import statement outside a module
首先,我试图说服 TPTB* 这是一个模块(没有成功)。所以我将“ import ”更改为“ 要求 ”,这很有效。
但是现在我在其他文件中有大约两打“ 导入 ”,这给了我同样的错误。
*我确定我的问题的根源是我什至不确定是什么在提示这个问题。我有点假设它是 Babel 7(因为我来自 Babel 6,我不得不更改预设)但我不是 100% 确定。
我发现的大多数解决方案似乎都不适用于直接 Node.js。就像这里的这个:
ES6 module Import giving "Uncaught SyntaxError: Unexpected identifier"
说它是通过添加“type = module”来解决的,但这通常会出现在HTML中,我没有。我也尝试过使用我项目的旧预设:
"presets": ["es2015", "stage-2"],
"plugins": []
但这又给我带来了另一个错误:“错误:插件/预设文件不允许导出对象,只能导出函数。”
以下是我开始使用的依赖项:
"dependencies": {
"@babel/polyfill": "^7.6.0",
"apollo-link-error": "^1.1.12",
"apollo-link-http": "^1.5.16",
"apollo-server": "^2.9.6",
"babel-preset-es2015": "^6.24.1",

最佳答案

验证您是否安装了最新版本的 Node.js(或至少 13.2.0+)。然后执行以下操作之一,如 described in the documentation :
选项 1
在最近的 parent package.json文件,添加顶级"type"值为 "module" 的字段.这将确保所有 .js.mjs文件被解释为 ES 模块。您可以将单个文件解释为 CommonJS通过使用 .cjs扩大。

// package.json
{
"type": "module"
}
选项 2
使用 .mjs 显式命名文件扩大。所有其他文件,例如 .js将被解释为 CommonJS,如果 type 则为默认值未在 package.json 中定义.

关于javascript - 语法错误 : Cannot use import statement outside a module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com