Наследование ES6 от импортированного модуля в Webpack

Итак, у меня проблемы с подклассами, расширяющими суперкласс в Webpack.

Мой суперкласс: core/Main.js

class Main {
    constructor () {
        console.log('Main Class Initialized');
    }
}

module.exports = Main;

Подкласс: app/Launch.js

var Main = require('core/Main.js');
class Launch extends Main {

    constructor () {
        console.log('Before Super')
        super();
        console.log('Launch Class Initialized')
    }
}

Если я console.log(Main) внутри файла app/Launch.js, он регистрирует Main и «Before Super» также регистрируется, но вызов super() приводит к его поломке, и я понятия не имею, почему.

Как добиться наследования в ES6 с помощью «сборщика модулей webpack» ? не помогло. Я пытался поменять местами module.exports на export class Main {} и require('core/Main.js') на import {Main} from 'core/Main.js', но это не сработало. Использование веб-пакета 1.14.0.


person Knight Yoshi    schedule 07.01.2017    source источник
comment
Наследование не имеет ничего общего с webpack. Кажется, ваш вопрос на самом деле что-то вроде того, как правильно импортировать модули при использовании веб-пакета?   -  person Felix Kling    schedule 07.01.2017


Ответы (1)


Понятно. Я скопировал Main.js в app/ и потребовал этого. Сейчас работает нормально, не знаю, почему это имело значение.

person Knight Yoshi    schedule 07.01.2017
comment
Я не знаю, какова структура вашего проекта, но если папки приложения и ядра находятся на одном уровне, путь, который вы используете в файле Launch.js для требования Main.js, неверен, он должен быть «../core/ Main.js' - person Andrés Andrade; 07.01.2017
comment
Итак, структура src/app и src/core. Где я установил контекст в конфигурации на src, чтобы я мог вызывать require('app/file') require('core/file') - этот контекст работает для всего остального в моем проекте, но по какой-то причине не в этом случай с src/core. - person Knight Yoshi; 07.01.2017