Tôi đã có một dự án ApolloServer gây rắc rối cho tôi, vì vậy tôi nghĩ rằng tôi có thể cập nhật nó và gặp vấn đề khi sử dụng Babel mới nhất. "Index.js" của tôi là:
require('dotenv').config()
import {startServer} from './server'
startServer()
Và khi tôi chạy nó, tôi gặp lỗi "SyntaxError: Không thể sử dụng câu lệnh nhập bên ngoài một mô-đun". Đầu tiên tôi đã thử làm mọi thứ để thuyết phục TPTB * rằng đây là một mô-đun (không thành công). Vì vậy, tôi đã thay đổi "nhập" thành "yêu cầu" và điều này đã hoạt động.
Nhưng bây giờ tôi có khoảng hai chục "nhập" trong các tệp khác cho tôi cùng một lỗi.
* Tôi chắc chắn gốc rễ của vấn đề của tôi là tôi thậm chí không chắc những gì phàn nàn về vấn đề này. Tôi giả sử đó là Babel 7 (vì tôi đến từ Babel 6 và tôi phải thay đổi các cài đặt trước) nhưng tôi không chắc chắn 100%.
Hầu hết những gì tôi tìm thấy cho các giải pháp dường như không áp dụng cho Node thẳng. Giống như cái này ở đây:
Nhập mô-đun ES6 cho "Uncaught SyntaxError: Định danh không mong đợi"
Nói rằng nó đã được giải quyết bằng cách thêm "type = module" nhưng điều này thường đi vào HTML, trong đó tôi không có. Tôi cũng đã thử sử dụng các cài đặt trước cũ của dự án của mình:
"presets": ["es2015", "stage-2"],
"plugins": []
Nhưng điều đó lại gây ra cho tôi một lỗi khác: "Lỗi: Các tệp Plugin / Preset không được phép xuất các đối tượng, chỉ có các chức năng."
CẬP NHẬT: Đây là những phụ thuộc mà tôi bắt đầu với:
"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",
jest.config.js
để 'ts-jest/presets/js-with-ts'
- vẫn có một số vấn đề khác nhưng điều này giải quyết được cái lớn. ..... uh yea, vấn đề của tôi là thử nghiệm liên quan ... các bản dựng bình thường vẫn ổn