Я разрабатываю структуру, опубликованную в NPM, и все работает нормально. Но что-то действительно болит, когда я использую свою собственную инфраструктуру как внешний модуль. Я должен установить импорт с полными путями, как это:Напишите легко расходуемые рамки машинописного текста
import { MyService } 'myframework/all/the/internal/path/myservice.service';
И я должен сделать один другой оператор импорта для каждого компонента класса, услуг или веб-я использую из моей структуры. Это, я полагаю, потому, что файлы декларации не экспортируются из верхнего файла index.d.ts.
Благодаря Matthias247 я правильно написал файлы реэкспорта, в которых я экспортирую все классы в свои рамки. А при использовании его в качестве внешнего модуля НОГО, он хорошо работает, и я могу написать все импорт как то:
import {MyService, MyClass1, MyClass2, ... } from 'myframework';
Теперь, когда это работает, я пытался сделать мой скомпилирован JavaScript файлов одиночного bundle.js быть загружены SystemJS так же, как @angular модули.
И это, где я действительно, полностью потерял ... Я не могу понять, что является или должно быть правильным способом построить такой комплект. Используя функцию браузера, каждая команда не работает, записывая «NO_MODULE_FOUND» в мой пакет bundle.js. Итак, я попытался использовать tsify для запуска в качестве плагина для браузера, и похоже, что он делает правильную работу, собирая все классы в одном комплекте. Но небольшая проблема, это также связывает все @angular и RxJS.
Пожалуйста, может ли кто-нибудь направить меня на то, как предполагается создать пакет UMD? Я компилирую с опцией «module: commonjs», но поскольку любой файл распознается как модуль, прокручивая браузер, я действительно не знаю, что делать.
Ну, я уже это делаю, как я объяснил. Моя проблема заключается в разрешении пути выполнения. При загрузке моей фреймворк в качестве модуля SystemJS он пытается импортировать «http: // host/myframework/dist», и он не работает, я получаю 404, потому что он должен перейти к «http: // host/myframework/dist /feature/feature.class "или что-то в этом роде. – Elvynia
Вы этого не делаете. Вы написали, что вы внедрили файл .d.ts, который изменит объявления, но не повлияет на экспорт кода и загрузку во время выполнения. Я рекомендовал написать файл ts (no .d), который реализует реэкспорт. Это изменяет сгенерированный код и исправляет вашу проблему во время выполнения, так как импорт основного файла индекса также будет импортировать остальные. – Matthias247
Действительно! Фактически, смотря на файлы index_modules/@ angular/core, меня обманывают, потому что они используют пакет umd и не нуждаются в том же, что и я.Я уже имел иерархическую реэкспорту, как вы предлагали, но я просто пытался использовать файлы поддельных индексов (.d.ts и .js). Поэтому теперь я использую свой основной index.js (сгенерированный из реального index.ts) из моей папки dist и работает во время выполнения. Большое спасибо ! :) Но мне все же хотелось бы понять, как создать пакет UMD с браузером, поэтому я отредактирую свой вопрос и подожду, прежде чем пометить ваш ответ как принятый. – Elvynia