我有一个ApolloServer项目给我带来了麻烦,所以我想我可能会更新它,并在使用最新的巴别塔时遇到问题。我的“index.js”是:
require('dotenv').config()
import {startServer} from './server'
startServer()
当我运行它时,我得到了错误
SyntaxError: Cannot use import statement outside a module
首先,我试图做一些事情来说服TPTB*这是一个模块(没有成功)。所以我把“导入”改成了“要求”,这就奏效了。
但是现在我在其他文件中有大约24个“导入”给我同样的错误。
*我确信我的问题的根源是我甚至不确定是什么在抱怨这个问题。我有点假设它是巴别塔7(因为我来自巴别塔6,我必须改变预设),但我不是100%确定。
我所发现的大多数解决方案似乎不适用于直线节点。就像这里的这个:
ES6模块导入提供“未捕获的语法错误:意外标识符”
说它是通过添加“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",
对于那些和我一样在阅读答案时感到困惑的人,在你的package.json文件中,在上层添加类型:模块
,如下所示:
{
"name": "my-app",
"version": "0.0.0",
"type": "module",
"scripts": { ...
},
...
}
如果有人在使用TypeScript时遇到这个问题,那么为我解决这个问题的关键就是改变
"target": "esnext",
"module": "esnext",
到
"target": "esnext",
"module": "commonjs",
在mytsconfig.json
中。我的印象是“esnext
”是“最好的”,但那只是一个错误。
验证是否已安装最新版本的Node.js(或至少13.2.0)。然后按照文档中的说明执行以下操作之一:
备选办法1
在最近的父级package.json
文件中,添加值为“module”
的顶级“type”
字段。这将确保所有.js
和.mjs
文件都被解释为ES模块。您可以使用.cjs
扩展名将单个文件解释为CommonJS。
// package.json
{
"type": "module"
}
选择2
显式地使用. mjs
扩展名命名文件。所有其他文件,如. js
将被解释为普通话,如果package.json
中没有定义type
,这是默认的。
在测试其中一个功能时,我遇到了这种错误。到底是什么问题? /用户/user/websprojects/hsu/src/path finding/path finding。spec.js:1从'chai'导入{expect}^^^^^^ 语法错误:无法在WrapSafe(节点:内部/模块/cjs/加载器: 1018:16)的模块外使用导入语句。_compile(节点:内部/模块/cjs/加载器: 1
当依赖项未声明为模块时,如何从依赖项中解析“不能在模块外使用导入语句”? 我想使用Svelte/kit中的验证器来验证电子邮件。但是,在导入ESM版本时,出现“无法在模块外使用导入语句”错误。我用pnpm代替npm或纱线。 验证器似乎正在尝试使用import语句,但它是一个包。json没有指定。我猜这是错误的根本原因。 包裹。json具有“类型”:“模块” SyntaxError:无法在模块外使用
问题内容: 我有一个ApolloServer项目给我带来麻烦,所以我认为我可能会更新它,并且在使用最新的Babel时遇到问题。我的“ index.js”是: 当我运行它时,出现错误“ SyntaxError:无法在模块外部使用import语句”。首先,我尝试做一些事情以说服TPTB *,这是一个模块(没有成功)。因此,我将“导入”更改为“需要”,并且此方法可行。 但是现在我在其他文件中有大约两打“
我有一本书。节点js(07.10.19版本的node.js的最新版本)应用程序中的ts文件,带有导入节点模块而无默认导出。我使用这种结构:
提前感谢您的帮助。 这个问题似乎已经在其他地方被提出和回答,但我相信我已经尝试了所有这些解决方案,但没有取得真正的进展。 我试图为webdriverIO创建一个自定义记者。然而,当所有导入都运行时,我得到以下错误: 无法在模块外使用导入语句 如果我试图执行文件顶部的导入语句,则会在导入WebdriverTestrasER行上出现上述错误。我可以通过使用要求来解决这个问题,但是在从@wdio/记者导
试图将用户模型中的“uuid”作为