Я новичок в веб-разработке и 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? ).