#angular #angular-cli #angular2-mdl
#angular #angular-cli #angular2-mdl
Вопрос:
Мое приложение работает очень медленно до завершения загрузки при запуске в браузере (я не смею говорить о мобильных устройствах 10-15 секунд) Да, я делаю ng build --prod
, и это все еще медленно.
Итак, с angular cli beta 16 я пробую новый флаг —aot И получаю много ошибок импорта и объявлений:
0% compilingUnexpected value 'FileDropDirective' declared by the module 'AppModule'
Error: Unexpected value 'FileDropDirective' declared by the module 'AppModule'
at C:Users...node_modules@angularcompilerbundlescompiler.umd.js:14174:33
at Array.forEach (native)
Затем просто для развлечения я прокомментировал 3 библиотеки, которые вызвали у меня эту ошибку, просто чтобы посмотреть, продолжит ли она компиляцию… НЕТ ! Я получаю другую ошибку:
10% building modules 6/12 modules 6 active ...ode_modulesstyle-loaderaddStyles.jsSyntaxError: Unexpected token ILLEGAL
at WebpackResourceLoader._evaluate (C:Users...node_modules@ngtoolswebpacksrcresource_loader.js:75:24)
Как добиться? Спасибо
Комментарии:
1. Не могли бы вы показать нам какой-нибудь исходный код, пожалуйста? Ваш AppModule и FileDropDirective 😉
2. вот вы где: pastebin.com/fxAUmDBF
Ответ №1:
Сегодня выпущена версия 2.0.0 angular2-mdl. Теперь поддерживается AOT.
Комментарии:
1. я знаю. , будет исправлено с 2.0.1. но содержимое readme такое же, как на giihub.
2. ИЗ-ЗА ПРОБЛЕМ, я получаю много ошибок после обновления до 2.0.0! В app.component.ts я использую службу MdlDialogOutletService, и я получаю
angular2-mdl/components/index"' has no exported member 'MdlDialogOutletService'.
затем в моем диалоговом окне компонента, в котором я имею pastebin.com/UbJs3Y9U и я получаюWARNING in ./src/app/edit-dialog/edit-dialog.component.ts 92:170 export 'MdlDialogReference' was not found in 'angular2-mdl' WARNING in ./src/app/edit-dialog/edit-dialog.component.ts 92:208 export 'MdlDialogReference' was not found in 'angular2-mdl'
3. У меня также есть эти ошибки:
WARNING in ./src/app/tabs-view/tabs-view.component.ts 305:98 export 'MdlDialogService' was not found in 'angular2-mdl'
4. Итак, я попытался удалить этот MdlDialogOutletService и поместить только <dialog-outlet></dialog-outlet> в index.html так что я всегда получаю ошибку
'MdlDialogService' was not found in 'angular2-mdl'
, иMdlDialogReference' was not found in 'angular2-mdl
я не понимаю, что происходит!5. пожалуйста, прочитайте github.com/mseemann/angular2-mdl/blob/master/CHANGELOG.md . номер версии увеличивается из-за критических изменений. так работает semver.
Ответ №2:
Я полагаю, что MdlModule
и Angular2DataTableModule
являются некоторыми внешними библиотеками. Если они не включают *.metadata.json
для каждого из своих угловых файлов, ваша компиляция AoT не может знать, что они делают. Вы ничего не можете с этим поделать, просто отправьте сообщение о проблеме, чтобы они обновили свои библиотеки, чтобы они были совместимы с AoT.
Но для вас FileDropDirective
я не могу сказать без кода.
Комментарии:
1. Как я могу решить это самостоятельно, пока не исправлено, есть способ достичь? некоторые документы?
2. Вы можете клонировать их проект и создавать его самостоятельно с правильной конфигурацией AoT. Затем вызовите
npm pack
, чтобы сгенерировать zip-версию их библиотеки для NPM. Затем в вашем проектеnpm install /path/to/this/zip.tar.gz
переопределите общедоступную версию NPM новой версией локали AoT.3. например: я попытался,
npm pack angular2-data-table
я понял, тогда мне нужно отредактировать его, нет? перед установкой. Как и что мне нужно изменить, чтобы оно стало доступным для доступа 🙂 спасибо4. Вы должны
git clone
использовать angular2-data-table, отредактировать его, скомпилировать и создать его с помощью AoT,npm pack
it иnpm install
it в вашем проекте. Для части компиляции AoT вы можете начать с angular.io/docs/ts/latest/cookbook/aot-compiler.html . Вы также можете посмотреть на некоторые другие библиотеки, которые уже обрабатывают компиляцию AoT, например github.com/noemi-salaun/ng2-logger5. не уверен, что я смогу скомпилировать эту библиотеку с помощью AoT, но свяжусь с командой, надеюсь, будет улучшено, ваш регистратор, похоже, ничего не изменится github.com/noemi-salaun/ng2-logger/commit /… вы только добавляете `skipMetadataEmit»: false» и все?