web-dev-qa-db-fra.com

Valeur inattendue 'DataTablesModule' importée par le module 'AppModule'. Veuillez ajouter une annotation @NgModule

Angular Je connais les tables de données et j'essaie d'implémenter les tables de données Angular en suivant les instructions données dans le lien https://l-lin.github.io/angular-datatables/ #/commencer

après avoir suivi les instructions lorsque j'essaie d'exécuter l'application à l'aide de la CLI Angular, l'erreur devient inattendue: valeur inattendue "DataTablesModule" importée par le module "AppModule". Veuillez ajouter une annotation @NgModule.

Remarque: j'ai ajouté DataTablesModule dans mon app.module.ts comme indiqué ci-dessous.

import { ActionComponent } from './action/action.component';
import { SearchfilterPipe } from './search/searchfilter.pipe';
import { DataTablesModule } from 'angular-datatables';

@NgModule({
declarations: [
AppComponent,
routingComponents,
LicenseComponent,
HeaderComponent,
ActionComponent,
FooterComponent,
SearchfilterPipe

],
imports: [
BrowserModule,
HttpModule,
FormsModule,
DataTablesModule,
AppRoutingModule,
NgbModule.forRoot()
],
providers: [HttpModule],
bootstrap: [AppComponent]
})
export class AppModule { }

et dans .angular-cli.json j'ai ajouté le code ci-dessous

{
"apps": [
{
  ...
  "styles": [
    "../node_modules/datatables.net-dt/css/jquery.dataTables.css"
  ],
  "scripts": [
    "../node_modules/jquery/dist/jquery.js",
    "../node_modules/datatables.net/js/jquery.dataTables.js"
  ],
  ...
 }
 ]
 }

J'utilise les versions fournies ci-dessous.

Commentaire: angulaire/cli: 1.1.0
noeud: 8.0.0
@ angular/compiler: 4.2.3
@ angulaire/noyau: 4.2.6
@ angular/compiler-cli: 4.2.3

Je ne comprends pas pourquoi exactement mon application se bloque. Toute entrée/suggestion sera très appréciée.

6
praveen sangalad

Modifiez d'abord votre tsconfig.json et ajoutez ce bloc à l'intérieur 

{
  "compilerOptions": {
    ...
    "baseUrl": "./",
    "paths": {
      "@angular/*": [
        "../node_modules/@angular/*"
     ]
    }
  }
}

Ensuite, angular-datatables installe réellement une version de node_modules et inclut une copie de @angular à l'intérieur de celle-ci, ce qui provoque un conflit entre les versions angulaires. Il suffit donc de supprimer le dossier node_modules du angular-datatables et vous voilà prêt à partir.

5
Nour

Vous pouvez courir dans aot 

ng serve --aot

ou utilisez l'option --preserve-links

ng serve --preserve-symlinks
0
antoine