Я уже целый день бьюсь головой об эту кирпичную стену, так что пришло время обратиться за помощью, я думаю! Я пытаюсь обновить проект с babel v5, я начинаю с этого в package.json:
"devDependencies": {
"babel": "^5.8.21",
"test": "mocha --require babel/register",
Я пытался перейти на babel как v6, так и v7, но безуспешно. В обоих случаях я получаю TypeError: _application.ApplicationClient is not a constructor
, когда пытаюсь запустить тесты, которые работали нормально с v5:
import { ApplicationClient } from '../src/wiotp/sdk/application';
...
let client = new ApplicationClient();
Используя v6 в качестве примера, я получаю следующее в package.json:
"devDependencies": {
"babel-cli": "^6.0.0",
"babel-core": "^6.0.0",
"babel-preset-env": "^1.7.0",
"mocha": "6.1.4",
"test": "mocha --require babel-core/register --timeout 5000",
и создал файл .babelrc (ранее его не было):
{
"presets": ["env"]
}
Я прочитал дюжину или более статей, пытаясь понять, что здесь происходит, я сделал и отменил многочисленные предлагаемые "исправления", основанные на поиске в Google похожих проблем, но я начинаю с нуля и нахожу его невероятно трудно получить простое простое английское объяснение того, что является настоящей проблемой для начала, и как предполагается, что babel должен быть настроен здесь для ее решения. Я предполагаю, что что-то, что произошло по умолчанию в v5, нужно как-то настроить в .babelrc сейчас, но / shrugs / не знаю, куда идти дальше.
Есть какие-нибудь указатели для того, кто изо всех сил пытается обернуть голову вокруг бабел, не говоря уже о различиях между v5, 6 и 7?
Редактировать:
src / wiotp / sdk / application / index.js имеет это:
import { default as ApplicationClient } from './ApplicationClient';
export default {
ApplicationClient
}
Где src / wiotp / sdk / application / ApplicationClient.js экспортировал один класс (я просто пытаюсь создать экземпляр этого класса в тестовом коде):
export default class ApplicationClient extends BaseClient {
constructor(config) {