Я частично удовлетворен этим ответом - до сих пор неизвестно, как ES6 обрабатывает этот «старый» экспорт модулей (вы только высказали свои предположения). Вы получите награду, однако я не буду проверять этот вопрос как принятый, если вы не разработаете свой ответ в этом пункте.

емя моего опыта в angular я был вынужден использовать четыре различных способа включения сторонней библиотекиpoliglot.js (для мультиязычности).

Так что, чтобы иметь возможность использоватьnew Polyglot(...) в моем классе Lang:

export class Lang
{
    ...
    constructor() {

        this.polyglot = new Polyglot({ locale: 'en' });
        ...        
    }
    ...
}

Я использую этот четыре подхода

A. По моему довольно старый (2016) angular2 (по материалам каркасаangular2-WebPack-стартер) проект (в настоящее время это решение не работает из-за отсутствияrequire обучение новым угловым проектам):

var Polyglot = require('../../../node_modules/node-polyglot/build/polyglot.min.js');

B. В моем следующем проекте angular4 (на основеangular2-WebPack-стартер):

import Polyglot from '../../../node_modules/node-polyglot/build/polyglot.min.js'; 

C. В моем недавнем проекте angular5, встроенном в проект Laravel (основан наУгловой-кли)

import * as Polyglot from '../../../node_modules/node-polyglot/build/polyglot.min.js';

D. Я также нашел 4-е решение, которое работает над моим старым угловым проектом для jQuery (основанным наangular2-WebPack-стартер) (и люди в Интернете часто упоминают это решение), но я записываю его на примере Polyglot:

import '../../../node_modules/node-polyglot/build/polyglot.min.js';
declare var Polyglot: any;

// declare var $:any   // this is for jquery (as example)

Вопросы:В чем разница между этими четырьмя решениями и как они работают? Почему в одном проекте одно решение работает, а другое не работает?

Ответы на вопрос(1)

Ваш ответ на вопрос