从“文件保护程序”中导入{saveAs}:CommonJS或AMD依赖项可能会导致优化援助

时间:2020-07-09 14:47:56

标签: angular filesaver.js

升级到Angular 10后,我的下载file-saver saveAs触发以下编译警告:

CommonJS or AMD dependencies can cause optimization bailouts.

编译器还提供link to an explanation以及如何禁用警告。除了禁用警告之外,没有saveAs功能的ES捆绑软件实现?

3 个答案:

答案 0 :(得分:10)

改用 file-saver-es。

npm install -S file-saver-es

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

import { saveAs } from 'file-saver-es';

答案 1 :(得分:1)

在文件保存器上有一个使用es模块的拉取请求,但是现在已经快一年了,所以我不知道它是否会发生。 Here is a link to the Flexx wrapper code您也可以使用拉取请求的存储库,但是它位于原始存储库的后面。 还有The pull request is here.,称为ngx-filesaver,使用FileSaver.js。我还没有尝试过,所以不知道它是否可以解决问题,或者它是否有用。

更新

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

答案 2 :(得分:0)

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

我在 Error: type mismatch: got <uint8, float> but expected one of: proc `*`(x, y: uint): uint first type mismatch at position: 2 required type for y: uint but expression 'f' is of type: float proc `*`(x, y: uint16): uint16 first type mismatch at position: 2 required type for y: uint16 but expression 'f' is of type: float proc `*`(x, y: uint32): uint32 first type mismatch at position: 2 required type for y: uint32 but expression 'f' is of type: float proc `*`(x, y: uint64): uint64 first type mismatch at position: 2 required type for y: uint64 but expression 'f' is of type: float proc `*`(x, y: uint8): uint8 first type mismatch at position: 2 required type for y: uint8 but expression 'f' is of type: float 8 other mismatching symbols have been suppressed; compile with --showAllMismatches:on to see them expression: r1 * f 文件中添加了文件保护程序作为允许的 commonjs 依赖项。

angular.json

项目->架构师->构建->选项。