You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Datatables执行ng add时报Cannot use import statement错误如何解决

问题原因

这个报错是因为安装的angular-datatables@13版本的自动配置脚本(schematics)采用了ES模块语法,而你当前使用的Angular CLI版本或者Node运行环境默认将其作为CommonJS模块加载,因此触发语法错误。且angular-datatables大版本必须和Angular大版本严格对应,跨版本安装会直接导致兼容问题。

解决方案

方案1:安装与Angular版本匹配的angular-datatables(推荐)

  • 先卸载已安装的不兼容包:
    npm uninstall angular-datatables datatables.net datatables.net-dt
  • 根据你使用的Angular版本安装对应大版本的依赖:
    • Angular 11:执行npm install angular-datatables@11 datatables.net datatables.net-dt
    • Angular 12:执行npm install angular-datatables@12 datatables.net datatables.net-dt
    • Angular 13:执行npm install angular-datatables@13 datatables.net datatables.net-dt --skip-confirmation
  • 安装完成后如果自动配置仍失败,直接走方案2手动配置即可。

方案2:跳过自动配置,手动引入

如果所有版本的ng add命令都报错,可以跳过自动配置步骤,手动完成引入:

  1. 完成上述依赖安装后,打开项目根目录的angular.json文件,在build > options节点下添加样式和脚本引用:
"styles": [
  "node_modules/datatables.net-dt/css/jquery.dataTables.min.css",
  "src/styles.css"
],
"scripts": [
  "node_modules/jquery/dist/jquery.min.js",
  "node_modules/datatables.net/js/jquery.dataTables.min.js"
]
  1. 打开src/app/app.module.ts文件,导入并注册DataTables模块:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { DataTablesModule } from 'angular-datatables'; // 新增导入

import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    DataTablesModule // 新增到imports数组
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
  1. 配置完成后重启项目即可正常使用angular-datatables。
补充说明
  • 如果你使用Angular 13时出现No terminal detected提示,仅需要在安装命令末尾添加--skip-confirmation参数即可跳过交互确认步骤。
  • 确保你的Node版本符合对应Angular版本的要求:Angular 11/12要求Node 12.20+ / 14.15+,Angular 13要求Node 14.15+ / 16.10+。

内容的提问来源于stack exchange,提问作者jeconner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:15:03