модуль ngx-bootstrap не найден: Ошибка: не удается разрешить ‘ngx-bootstrap / loader’

#angular #angular-cli #ngx-bootstrap

#angular #angular-cli #ngx-bootstrap

Вопрос:

Я использую datepicker из ngx-bootstrap@3.2.0 в проекте Angular 6.1.10. Я также загружаю другую локаль (nlLocale).

В моем функциональном модуле:

 import { defineLocale, nlLocale, BsDatepickerModule, BsLocaleService} from 'ngx-bootstrap';

defineLocale('nl', nlLocale);
  

В моем компоненте:

 import { BsLocaleService } from 'ngx-bootstrap';
export class MyComponent implements OnInit {  
  locale = 'nl';

  constructor(private bsLocaleService: BsLocaleService) {
    this.bsLocaleService.use(this.locale);
  }
}
  

Когда я создаю это с помощью команды:

 ng build --watch
  

У меня нет проблем, я могу запустить приложение, использовать datepicker, и месяцы отображаются на голландском языке.

Однако, когда я создаю для производства:

 ng build --prod 
  

Я получаю следующую ошибку:
ОШИБКА в ./node_modules/ngx-bootstrap/datepicker/fesm5/ngx-bootstrap-datepicker.js Модуль не найден: Ошибка: не удается разрешить ‘ngx-bootstrap / loader’ в ‘E:MyProjectnode_modulesngx-bootstrapdatepickerfesm5 ‘ ОШИБКА в ./node_modules/ngx-bootstrap/modal/fesm5/ngx-bootstrap-modal.js Модуль не найден: Ошибка: не удается разрешить ‘ngx-bootstrap / loader’ в ‘E:MyProjectnode_modulesngx-bootstrapmodalfesm5 ‘

Я искал файл ‘ngx-bootstrap-datepicker.js ‘который существует в ‘fesm5′, но я не вижу внутри файла ссылки на что-либо, связанное с ngx-bootstrap / loader’.

Я попытался понизить рейтинг до ngx-bootstrap@3.0.1 и это работает, поэтому это явно указывает на проблему с ngx-bootstrap, но из некоторого чтения, которое я делал, у других, похоже, нет этой проблемы.

Кто-нибудь сталкивался с этим раньше?

Ответ №1:

Вы выполнили следующее в модальном режиме функции?

 @NgModule({
  imports: [BsDatepickerModule.forRoot(),...]
})
  

если это так, попробуйте o вместо этого добавить его в свой корневой модуль

Комментарии:

1. Пробовал оба, тот же результат

2. Можете ли вы обновить свой пост о том, как выглядят ваши модули?

Ответ №2:

В настоящее время я использую Angular 9 с последней версией ngx-bootstrap. Я полагаю, что последняя реализация заключается в импорте BsDatepickerModule в файл app.module.ts следующим образом

Инструкция импорта в коде app.module.ts:

 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
  

при импорте app.module.ts:

   imports: [
BrowserAnimationsModule,
BsDatepickerModule.forRoot()
  

]

Код компонента:

 import { BsDatepickerConfig } from 'ngx-bootstrap/datepicker';

@Component({ selector: 'app-', templateUrl: './register.component.html', styleUrls: ['./register.component.css'],
})
export class RegisterComponent implements OnInit {


bsConfig: Partial<BsDatepickerConfig>;



constructor() {}

ngOnInit() {

this.bsConfig = Object.assign({}, { containerClass: 'theme-blue' });

}
}
  

package.json

«@angular/core»: «~ 9.1.7», «bootstrap»: «^ 4.5.0», «ngx-bootstrap»: «^ 5.6.1», «@angular / cli»: «~ 9.1.6» введите описание изображения здесь

С официального сайта:

Использование

импортируйте { BrowserAnimationsModule} из ‘@angular/platform-browser /animations’;

// РЕКОМЕНДУЕТСЯ

импортируйте { BsDatepickerModule} из ‘ngx-bootstrap / datepicker’;

// НЕ РЕКОМЕНДУЕТСЯ (Angular 9 не поддерживает этот вид импорта)

импортируйте { BsDatepickerModule} из ‘ngx-bootstrap’;

@NgModule({

импортирует: [

 BrowserAnimationsModule,

BsDatepickerModule.forRoot(),

...
  

]
})

экспортировать класс AppModule(){}

https://valor-software.com/ngx-bootstrap/#/datepicker

techjunkieblog.com

Комментарии:

1. Для более новых версий состояние импорта — import { BsDropdownModule } из ‘ngx-bootstrap / dropdown’; Возможно, вам придется перестроить после добавления библиотеки, а также использовать Angular cli для добавления инструмента вместо npm с помощью этой команды. ng add ngx-bootstrap введите Ctrl C, чтобы остановить приложение, и ng serve —watch, чтобы перестроить его

2. Я думаю, что с Angular 6-8 вы все еще можете следовать старым реализациям. Наилучшая стратегия — определить версию ngx-bootstrap в вашем файле package.json и найти документацию на официальном сайте valor-software.com/ngx-bootstrap /# , соответствующий вашей версии