Проблемы с Babel и Mocha: использование системы импорта ES6 - PullRequest
0 голосов
/ 11 июля 2020

Я новичок в веб-разработке и Javascript, и мне трудно заставить Mocha работать с модульной системой ES6. Многие сообщения на форумах по этому топу c немного устарели.

Я пробовал различные решения, размещенные здесь: Неожиданный импорт токена Babel при запуске тестов мокко .

Однако похоже, что сообщения об ошибках компилятора, с которыми я сталкиваюсь, немного отличаются от сообщений в большинстве сообщений, которые я видел. Мне интересно, не связана ли моя проблема как-то с babel и проблемой синтаксиса, которую я упустил.

Ошибки из разных типов импорта

import 'mocha';
       ^^^^^^^

SyntaxError: Unexpected string
import { EdgeList } from "../src/packing/edgeList";
       ^

SyntaxError: Unexpected token {

package. json (актуально частей)

  "devDependencies": {
    "@babel/cli": "^7.10.4",
    "@babel/core": "^7.10.4",
    "@babel/plugin-transform-runtime": "^7.10.4",
    "@babel/polyfill": "^7.10.4",
    "@babel/preset-env": "^7.10.4",
    "@babel/preset-stage-2": "^7.8.3",
    "@babel/register": "^7.10.4",
    "@babel/runtime": "^7.10.4",
    "mocha": "^8.0.1",
    "parcel-bundler": "^1.12.4",
    "sass": "^1.23.3",
    "typescript": "^3.7.2"
  },
  "scripts": {
    "cleanup": "rm -rf .cache dist",
    "start": "parcel ./src/index.html --open",
    "build": "parcel build ./src/index.html",
    "dev": "npm run cleanup && npm run build",
    "test": "mocha --require @babel/register src/test/*"
  },
  "dependencies": {
    "@babel/polyfill": "^7.10.4",
    "@babel/runtime": "^7.10.4",
    "@types/aframe": "^0.8.4",
    "aframe": "~1.0.4",
    "package.json": "^2.0.1",
    "parcel-plugin-asset-copier": "^1.0.0",
    "pkg.json": "^2.0.7",
    "snoowrap": "^1.21.0"
  },

.babelr c

{
    "presets": ["@babel/env"],
    "plugins": [
        ["@babel/transform-runtime"]
    ]
}

test. js

import 'mocha';
import { EdgeList } from "../src/packing/edgeList";

ОБНОВЛЕНИЕ : Для всех, кто могут иметь большую гибкость при выборе фреймворков для тестирования, возможно, вместо этого можно использовать Jest. Установка прошла намного быстрее и сразу сработала (ссылка: Поддерживает ли Jest импорт / экспорт ES6? ).

...