Я частично удовлетворен этим ответом - до сих пор неизвестно, как 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)
Вопросы:В чем разница между этими четырьмя решениями и как они работают? Почему в одном проекте одно решение работает, а другое не работает?