Я получаю эту ошибку после перехода на NgModule, ошибка не слишком помогает, пожалуйста, какой-нибудь совет?
Error: Error: Unexpected value 'undefined' imported by the module 'AppModule'
at new BaseException (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:5116:27)
at eval (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:13231:35)
at Array.forEach (native)
at CompileMetadataResolver.getNgModuleMetadata (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:13215:48)
at RuntimeCompiler._compileComponents (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:15845:51)
at RuntimeCompiler._compileModuleAndComponents (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:15769:41)
at RuntimeCompiler.compileModuleAsync (http://localhost:5555/node_modules/@angular/compiler/bundles/compiler.umd.js:15746:25)
at PlatformRef_._bootstrapModuleWithZone (http://localhost:5555/node_modules/@angular/core/bundles/core.umd.js:9991:29)
at PlatformRef_.bootstrapModule (http://localhost:5555/node_modules/@angular/core/bundles/core.umd.js:9984:25)
at Object.eval (http://localhost:5555/app/main.js:8:53)
Evaluating http://localhost:5555/app/main.js
Error loading http://localhost:5555/app/main.js "Report this error at https://github.com/mgechev/angular2-seed/issues"(anonymous function) @ contracts:142ZoneDelegate.invoke @ zone.js?1472711930202:332Zone.run @ zone.js?1472711930202:225(anonymous function) @ zone.js?1472711930202:586ZoneDelegate.invokeTask @ zone.js?1472711930202:365Zone.runTask @ zone.js?1472711930202:265drainMicroTaskQueue @ zone.js?1472711930202:491ZoneTask.invoke @ zone.js?1472711930202:435
app.module.ts:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { APP_BASE_HREF } from '@angular/common';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
import { routes } from './app.routes';
import { provide } from '@angular/core';
//dgf ng2-translate
import { TRANSLATE_PROVIDERS, TranslateLoader, TranslateStaticLoader, MissingTranslationHandler } from 'ng2-translate/ng2-translate';
import { HTTP_PROVIDERS, Http } from '@angular/http';
import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { TranslationNotFoundHandler } from './shared/common/TranslationNotFoundHandler';
//dgf ng2-translate END
import {CalendarModule,DataTableModule,DialogModule,PanelModule} from 'primeng/primeng';
import {TranslateModule} from 'ng2-translate/ng2-translate';
import { AuthGuard,AppConfigService,AppConfig,DateHelper,ThemeComponent,ToolbarComponent, RemoveHostTagDirective } from './index';
import { HomeComponent,MessagesExampleComponent,PrimeNgHomeComponent,CalendarComponent,Ng2BootstrapExamplesComponent,DatepickerDemoComponent,UserListComponent,UserEditComponent,ContractListComponent,AboutComponent } from './index';
@NgModule({
imports: [BrowserModule, HttpModule, RouterModule.forRoot(routes), /* AboutModule, HomeModule, SharedModule.forRoot()*/
FormsModule,
ReactiveFormsModule,
//third-party
,TranslateModule.forRoot() //,
//third-party PRIMENG
,CalendarModule,DataTableModule,DialogModule,PanelModule
],
declarations: [
AppComponent,ThemeComponent, ToolbarComponent, RemoveHostTagDirective,
HomeComponent,MessagesExampleComponent,PrimeNgHomeComponent,CalendarComponent,Ng2BootstrapExamplesComponent,DatepickerDemoComponent,UserListComponent,UserEditComponent,ContractListComponent,AboutComponent
],
providers: [{
provide: APP_BASE_HREF,
useValue: '<%= APP_BASE %>'
},
FormsModule,
ReactiveFormsModule,
provide(TranslateLoader, { //DGF ng2-translate
useFactory: (http: Http) => new TranslateStaticLoader(http, 'assets/i18n', '.json'),
deps: [Http]
}),
provide(MissingTranslationHandler, { useClass: TranslationNotFoundHandler }), //DGF ng2-translate
AuthGuard,AppConfigService,AppConfig,
DateHelper
],
bootstrap: [AppComponent]
})
export class AppModule { }
, ,
Ответы:
Для тех, кто столкнулся с этой же ошибкой, моя ситуация заключалась в том, что у меня есть двойные запятые в разделе импорта
источник
Убедитесь, что модули не импортируют друг друга. Итак, не должно быть
В модуле A:
imports[ModuleB]
В модуле B:
imports[ModuleA]
источник
Это может быть вызвано несколькими сценариями, например
источник
Ни одно из вышеперечисленных решений не помогло мне, я просто остановил и снова запустил ng serve.
источник
circular dependency
У меня такая же проблема. В моем случае причина в лишней запятой.
источник
У меня была эта ошибка, потому что
index.ts
в корне моего приложения был файл, который экспортировал мойapp.component.ts
. Поэтому я подумал, что могу сделать следующее:Это сработало, и у меня не было красных волнистых линий, и даже intellisense вызывает AppComponent, когда вы начинаете его вводить. Но выяснилось, что это было причиной этой ошибки. После того, как я изменил его на:
Ошибка исчезла.
источник
Убедитесь, что вы не должны импортировать такой модуль / компонент:
Но так должно быть
источник
Эта проблема циклических зависимостей двух модулей
Модуль 1: импорт Модуль 2
Модуль 2: импорт Модуль 1
источник
Я создаю библиотеку компонентов и получаю эту ошибку в своем приложении, которое импортирует указанную библиотеку. При запуске
ng build --prod
илиng serve --aot
в приложении я получал:Unexpected value 'undefined' imported by the module 'ɵm in node_modules/<library-name>/<library-name>.d.ts'
Но никаких ошибок при использовании
ng serve
или тестировании модулей в самой библиотеке даже при встраивании--prod
.Оказывается, intellisense ввел меня в заблуждение. Для некоторых из моих модулей я импортировал родственный модуль как
import { DesignModule } from '../../design';
вместо того
import { DesignModule } from '../../design/design.module';
Он отлично работал во всех сборках, кроме описанной мной.
Это было ужасно, и мне повезло, что это не заняло у меня больше времени. Надеюсь, это кому-то поможет.
источник
Было такое же исключение при попытке скомпилировать приложение Angular 5.
В моем случае оказалось, что это круговая зависимость, которую я обнаружил с помощью инструмента madge. . Найдены файлы, содержащие циклическую зависимость, запустив
источник
Вам нужно удалить строку
import { provide } from '@angular/core';
изapp.module.ts
as,provide
которая сейчас устарела. Вы должны использоватьprovide
в провайдерах, как показано ниже:источник
Просто поместите провайдера в forRoot: https://github.com/ocombe/ng2-translate
источник
для этого есть еще одно простое решение. У меня есть 2 модуля, которые как-то глубоко в структуре используют друг друга. Я столкнулся с той же проблемой с круговыми зависимостями с webpack и angular 2. Я просто изменил способ объявления одного модуля:
Теперь, когда я использую оператор import для атрибута ngModule, я просто использую:
С этим все проблемы решены.
источник
Моя проблема заключалась в том, что экспорт дважды в index.ts
Удаление одного из них решило проблему.
источник
У меня была эта проблема, правда, ошибка на консоли не описательна. Но если вы посмотрите на вывод angular-cli:
Вы увидите ПРЕДУПРЕЖДЕНИЕ, указывающее на круговую зависимость.
Таким образом, решение состоит в том, чтобы удалить один импорт из одного из модулей.
источник
Если вы уверены, что не делаете ничего плохого, завершите "ng serve" и перезапустите его. Поступая таким образом, компилятор выполняет всю свою работу, а приложение работает должным образом. Предыдущий опыт работы с модулями научил меня либо создавать их, когда "ng serve" не запущен, либо перезапускать терминал, как только я закончу.
Перезапуск «ng serve» также работает, когда вы отправляете новый компонент другому компоненту, возможно, компилятор не распознал ваш новый компонент, просто перезапустите «ng serve»
У меня это сработало всего несколько минут назад.
источник
Проблема в том, что существует хотя бы один импорт, для которого отсутствует исходный файл.
Например, я получил ту же ошибку, когда использовал
Но файла './app-routing.module' по заданному пути не было.
Я удалил этот импорт, и ошибка исчезла.
источник
У меня была такая же ошибка, ни один из вышеперечисленных советов не помог.
В моем случае это было вызвано WebStorm, объединившим два импорта в один.
Я извлек это в два отдельных импорта
После этого работает без ошибок.
источник
./models
./model
Если ваш индекс экспортирует модуль - этот модуль не должен импортировать свои компоненты из того же индекса, он должен импортировать их прямо из файла компонентов.
У меня была эта проблема, и когда я перешел с импорта компонентов в файл модуля с использованием индекса на их импорт с использованием прямого файла, это было решено.
например, изменено:
кому:
также удалите ненужные теперь экспортные данные из индекса, например:
кому:
источник
Другой причиной может быть такой код:
Поскольку экспорт - это пустой массив, и перед ним его следует удалить.
источник
У меня была такая же проблема, я добавил компонент в index.ts папки a = и выполнил экспорт. Тем не менее выскакивала неопределенная ошибка. Но в IDE появляются любые красные волнистые линии
Затем, как было предложено, изменилось с
к
источник
Я исправляю это, удаляя весь файл экспорта индекса, включая канал, службу. тогда весь путь импорта файлов - это конкретный путь. например.
import { AuthService } from './_common/services/auth.service';
заменить
import { AuthService } from './_common/services';
кроме того, не экспортируйте класс по умолчанию.
источник
Моя проблема заключалась в неправильном написании имени компонента внутри
component.ts
.Оператор импорта не показал ошибки, но объявление показало, что ввело меня в заблуждение.
источник
Неиспользованный аргумент " private http: Http " в конструкторе app.component.ts вызвал у меня ту же ошибку, и она разрешилась после удаления неиспользуемого аргумента конструктора.
источник
Скорее всего, ошибка будет связана с файлом AppModule.ts.
Чтобы решить эту проблему, проверьте, объявлен ли каждый компонент, и каждая ли объявленная нами услуга помещена в провайдеры и т. Д.
И даже если в файле AppModule все кажется правильным и вы по-прежнему получаете сообщение об ошибке, остановите запущенный экземпляр angular и перезапустите его еще раз. Это может решить вашу проблему, если все в файле модуля правильно и если вы по-прежнему получаете ошибку.
источник
Для меня проблема решилась изменением последовательности импорта:
Один с ошибкой:
Изменил это на:
источник
Приведенные выше решения не помогли мне.
Поэтому я поддержал версию angular-cli 1.6.4 для 1.4.4, и это решило мою проблему.
Я не знаю, лучшее ли это решение, но пока это сработало для меня
источник
Я столкнулся с той же проблемой. Проблема заключалась в том, что я импортировал какой-то класс из index.ts
index.ts содержит инструкцию экспорта
Я изменил его на файл .ts, который содержит фактический объект класса
и это разрешилось.
источник
Для меня эта ошибка была вызвана просто неиспользованным импортом:
Результирующая ошибка:
Закомментируйте, и ошибки не возникнет:
источник
Я встретил эту проблему в ситуации:
- app-module --- app-routing // app router ----- imports: [RouterModule.forRoot(routes)] --- demo-module // sub-module ----- demo-routing ------- imports: [RouterModule.forRoot(routes)] // --> should be RouterModule.forChild!
потому что есть только файл
root
.источник