import {saveAs} from 'file-saver':CommonJS 或 AMD 依赖会导致优化救助

Jan*_*sen 17 filesaver.js angular

升级到 Angular 10 后,我的下载文件保护程序 saveAs会触发以下编译警告:

CommonJS or AMD dependencies can cause optimization bailouts.
Run Code Online (Sandbox Code Playgroud)

编译器还提供了一个解释链接以及如何禁用警告。除了禁用警告之外,是否有针对该saveAs功能的 ES 包实现?

小智 12

请改用 file-saver-es。

npm install -S file-saver-es
Run Code Online (Sandbox Code Playgroud)

然后在您的代码中导入 saveAs 和其他代码保持原样。

import { saveAs } from 'file-saver-es';
Run Code Online (Sandbox Code Playgroud)

  • 没有“@types/file-saver-es”。 (3认同)
  • @MatthieuRiegler 看起来现在有一个 `@types/file-saver-es` (3认同)

Ε Г*_*И О 8

我尝试了一切,但没有任何效果。于是决定闭嘴。

我添加了文件保护程序作为angular.json文件中允许的 commonjs 依赖项。

"allowedCommonJsDependencies": ["file-saver"],
Run Code Online (Sandbox Code Playgroud)

这位于项目->架构师->构建->选项中。


Amm*_*tel 5

文件保护器上有一个使用 es 模块的拉取请求,但它已经快一年了,所以我不知道它是否会发生。拉取请求在这里。您还可以使用拉取请求的存储库,但它位于原始存储库后面。这里还有另一个存储库,称为 ngx-filesaver 并使用 FileSaver.js。我还没有尝试过,所以我不知道它是否能解决问题,或者是否有任何好处。

更新

我尝试了 ngx-filesaver,它似乎只是将 FileSaver.js 包装在 Angular 模块中。因此,虽然它为您提供了一个与您的角度代码的其余部分更一致的服务,但它不处理 commonJS 或 AMD 依赖项警告。