我有一个ApolloServer项目给我带来了麻烦,所以我想我可能会更新它并在使用最新的 Babel 时遇到问题。我的“index.js”是:
require('dotenv').config()
import {startServer} from './server'
startServer()
当我运行它时,我收到错误
SyntaxError: Cannot use import statement outside a module
首先,我试图说服 TPTB* 这是一个module(但没有成功)。所以我将“导入”更改为“要求”,这奏效了。
但是现在我在其他文件中有大约两打“导入”给了我同样的错误。
*我确定我的问题的根源在于我什至不确定是什么在抱怨这个问题。我有点假设它是 Babel 7(因为我来自 Babel 6,我不得不更改预设)但我不是 100% 确定。
我为解决方案找到的大部分内容似乎不适用于直接 Node.js。就像这里的这个:
ES6 module导入给出“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",