【问题标题】:Cannot find namespace 'NodeJS'找不到命名空间“NodeJS”
【发布时间】:2019-10-03 17:09:04
【问题描述】:

如果我运行这段代码,我得到一个错误,找不到命名空间'NodeJS'。

  public exportExcel(jsonData: any[], excelFileName: string): void {
    //Excel Title, Header, Data
    const header: string[] =  Object.keys(jsonData[0]);
    const data = jsonData;

    //Create workbook and worksheet
    let workbook = new Workbook();
    let worksheet = workbook.addWorksheet(excelFileName);

    //Add Header Row
    let headerRow = worksheet.addRow(header);

    // Cell Style : Fill and Border
    headerRow.eachCell((cell, number) => {
      cell.fill = {
        type: 'pattern',
        pattern: 'solid',
        fgColor: { argb: 'FFFFFF00' },
        bgColor: { argb: 'FF0000FF' }
      }
      cell.border = { top: { style: 'thin' }, left: { style: 'thin' }, bottom: { style: 'thin' }, right: { style: 'thin' } }
    })
    // Add Data and Conditional Formatting
    data.forEach((element) => {
      let eachRow = [];
      header.forEach((headers) => {
        eachRow.push(element[headers])
      })
      if (element.isDeleted === "Y") {
        let deletedRow = worksheet.addRow(eachRow);
        deletedRow.eachCell((cell, number) => {
          cell.font = { name: 'Calibri', family: 4, size: 11, bold: false, strike: true };
        })
      } else {
        worksheet.addRow(eachRow);
      }
    })

...

node_modules/exceljs/index.d.ts(1648,34) 中的错误:错误 TS2503:找不到命名空间“NodeJS”。

【问题讨论】:

  • 好的,谢谢,我会试试的
  • @dev 但我得到了这个信息,这是什么意思? 100 个未更改的块 chunk {main} main.js, main.js.map (main) 429 kB [initial] [rendered] chunk {vendor} vendor.js, vendor.js.map (vendor) 9.43 MB [initial] [rendered ] 时间:6775ms
  • 不确定这些行。但是您是否尝试过上述链接中提到的建议并有所帮助?
  • 是的,我尝试在 Chrome 控制台中获取此错误:core.js:9110 错误错误:未捕获(承诺中):NullInjectorError:StaticInjectorError(AppModule)[EventOverviewPageComponent -> ExportService]:StaticInjectorError(Platform : core)[EventOverviewPageComponent -> ExportService]: NullInjectorError: No provider for ExportService!

标签: node.js angularjs


【解决方案1】:

针对 Angular8+ 项目的解决方案:

这是一个已知的bug,由于exceljs@types/node 的版本不兼容。我在使用 Angular 10 时遇到了类似的问题。

存在2个可能的解决方案:

  1. 推荐:使用"types": ["node"] 更新您的tsconfig.app.json 文件

  1. 如果你没问题没有类型支持,那么你可以简单地使用下面的导入:
    import * as Excel from "exceljs/dist/exceljs.min.js";

【讨论】:

  • 在我的情况下,这仅在应用于项目根目录中的 tsconfig.app.json 时才有效。
【解决方案2】:

从你的 exceljs node_modules 中打开 index.d.ts 文件

并替换这一行 字典:缓冲区 | NodeJS.TypedArray |数据视图 |数组缓冲区; // 仅放气/膨胀,默认为空字典

有了这个

字典:缓冲区 |数据视图 |数组缓冲区; // 仅放气/膨胀,默认为空字典

然后只是 ng 服务

【讨论】:

  • 哈哈!下次他们安装依赖项时怎么办???您是否希望他们每次都更改其节点模块中的代码?
  • 如果你必须采用这种方法,你可以使用 package-patch
猜你喜欢
  • 2017-01-11
  • 2017-08-13
  • 1970-01-01
  • 2020-12-28
  • 2015-06-20
  • 2012-07-14
  • 2011-03-10
  • 2017-08-13
相关资源
最近更新 更多