npm - 我们可以在角度中延迟加载包吗?我可以仅在单击某个按钮时下载所需的包吗?

标签 npm angular7 lazy-loading

我正在使用带有 Angular 7 的 pdfmake.js(大约 2mb)和 XLSX(大约 1mb),但它们仅在应用程序的一页上使用。当我加载主页时,在开发人员工具中我可以看到 main.js 文件大小约为 8mb,我实现了延迟加载,将 main.js 文件大小减少到 7mb 我可以通过加载 pdfmake.js 和以某种方式进一步减少 main.js 文件吗仅当我单击某个按钮时才显示 XLSX?

最佳答案

  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');;
  }

关于npm - 我们可以在角度中延迟加载包吗?我可以仅在单击某个按钮时下载所需的包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60087516/

相关文章:

node.js - 无法将nodejs应用程序部署到heroku和openshift

Angular 7 嵌套路由,组件嵌套在模块内

angular - 在带有路由的模块中导入带有路由的延迟加载模块会中断路由

node.js - VS Code 中安装错误 - eslint

npm - 有没有办法在运行 "npm init"时在关键字中包含空格?

javascript - 用于将 vue 组件发布到 npm 包中的 Webpack 配置

javascript - Angular 7 通用 : inner components are not rendered

Angular 7 生产构建失败

c# - 分配对象时如何防止模型属性的延迟加载?

wpf - 资源字典没有延迟加载