我正努力让FileSaver在我的项目中工作 . 这是我采取的确切步骤
-
npm install filesaver.js --save
-
在app.component.ts内
从'filesaver.js'导入*作为FileSaver;
然后我得到这个错误
找不到模块'filesaver.js' .
我还尝试将以下内容添加到我的angular-cli.json文件中
"scripts": [
"../node_modules/filesaver.js/FileSaver.min.js"
]
This是我能找到的最接近的东西 . 但是,这个家伙和我有不同的设置 . 必须有一个简单的方法来使用这个文件吗?
注意,从npm安装FileSaver后,在我的node-module中,我得到filesaver.js文件夹(不知道为什么他们将.js作为文件夹名称) . 在这个文件夹中,我得到了FileSaver.js和FileSaver.min.js
我也试过了
从'filesaver.js / FileSaver.min.js'导入*作为FileSaver;
但那只是给了我
找不到模块'filesaver.js / FileSaver.min.js' . )
----更新---
我也尝试过typings file
npm i @types/filesaver
结果是一样的
----更新-----
以下是我如何使用它 .
添加了@ types / filesaver并添加了以下代码 .
declare module 'filesaver' {
var saveAs: any;
export = saveAs;
}
注意 . 我正在修改node_module文件中的内容是不是很糟糕 . 这意味着每次用户运行npm install时,自定义代码都不会存在 . 怎么绕过它?
从npm下载的默认文件夹名称是filesaver.js . 我把它改成了filesaver . 为什么在世界上他们将其命名为.js,该程序似乎无法将其识别为文件夹
然后从'filesaver'导入*作为filesaver
然后我可以打电话
var blob = new Blob(['Some Content'], { type: "text/csv;charset=utf-8" });
filesaver.saveAs(blob, "hello world.csv");
-----文件夹结构-----
angular-cli:1.0.0-beta.26节点:6.9.1 os:darwin x64 @ angular / common:2.4.5 @ angular / compiler:2.4.5 @ angular / core:2.4.5 @ angular / forms: 2.4.5 @ angular / http:2.4.5 @ angular / material:2.0.0-beta.1 @ angular / platform-browser:2.4.5 @ angular / platform-browser-dynamic:2.4.5 @ angular / router: 3.4.5 @ angular / compiler-cli:2.4.5
1 回答
添加到angular-cli(你做了)
然后添加到src / typings.d.ts
现在您可以使用此方法而无需任何导入 .
这个怎么运作 .
你不应该创建typings.d.ts,它由angular-cli添加,因此它必须位于项目内的 src 文件夹中 .
当您在section script中添加angular-cli.json时,所有脚本都将在页面start上加载 . 这就是为什么包含来自 node_modules 的脚本非常重要的原因"../node_modules/filesaver.js/FileSaver.min.js" . 并且包中添加了 --save 标志,正如您所做的那样,因此删除任何时间文件夹并调用npm install脚本将会到位 . 3 .