Npm 我们可以在angular中延迟加载包吗?我可以只在单击某个按钮时下载所需的包吗?

Npm 我们可以在angular中延迟加载包吗?我可以只在单击某个按钮时下载所需的包吗?,npm,angular7,lazy-loading,Npm,Angular7,Lazy Loading,我在angular 7中使用了pdfmake.js(大约2mb)和XLSX(大约1mb),但它们只在应用程序的一个页面上使用。当我加载我的主页时,在开发者工具中我可以看到main.js文件大小约为8mb,我实现了延迟加载,将main.js文件大小减少到7mb。我可以通过加载pdfmake.js和XLSX来进一步减少main.js文件吗?只有当我点击一些按钮时?您可以通过导入库的缩小版本来进一步减小大小 pdfMake:any; async loadPdfMaker() { i

我在angular 7中使用了pdfmake.js(大约2mb)和XLSX(大约1mb),但它们只在应用程序的一个页面上使用。当我加载我的主页时,在开发者工具中我可以看到main.js文件大小约为8mb,我实现了延迟加载,将main.js文件大小减少到7mb。我可以通过加载pdfmake.js和XLSX来进一步减少main.js文件吗?只有当我点击一些按钮时?

您可以通过导入库的缩小版本来进一步减小大小

  pdfMake:any;


  async loadPdfMaker() {
    if (!this.pdfMake) {
      const pdfMakeModule = await import('pdfmake/build/pdfmake');
      const pdfFontsModule = await import('pdfmake/build/vfs_fonts');
      this.pdfMake = pdfMakeModule.default;
      this.pdfMake.vfs = pdfFontsModule.default.pdfMake.vfs;
    }
  }


  async generatePdf() {

    await this.loadPdfMaker();

    const def = { content: 'A sam`enter code here`ple PDF document generated using Angular and PDFMake' };
    this.pdfMake.createPdf(def).download('optionalName.pdf');;
  }

import*作为pdfMake从'pdfMake/build/pdfMake.min'导入

请在您的答案中添加一些解释,以便其他人可以从中学习。请不要仅将代码作为答案发布,还要解释您的代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票