fileSaver未被映射。 angular2-jwt工作正常。
我做npm install file-saver -save
以获取文件保护程序,然后按如下方式引用它(我有一个gulp任务将js文件移动到libs目录,我看到那里的文件)
已将脚本包含在src和system.config
中 <script src="libs/file-saver/FileSaver.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
} ,
map: {
"angular2-jwt": "libs/angular2-jwt/angular2-jwt.js"
,"fileSaver":"libs/file-saver/FileSaver.js"
}
});
System.import('app/bootstrap')
.then(null, console.error.bind(console));
</script>
component.ts
这里找不到fileSaver
import {SaveAs} from 'fileSaver';
我得到的错误就是这个
error TS2307: Cannot find module 'fileSaver'.
知道这里有什么问题吗?
答案 0 :(得分:2)
就我而言,我让它像这样工作:
<强>的package.json 强>:
"dependencies": {
// ... all angular dependencies
"file-saver": "1.3.2"
},
<强>的index.html 强>:
<!-- all angular dependencies and other 3rd party -->
<script src="node_modules/file-saver/FileSaver.js"></script>
<强> typings.json 强>:
// other typings needed
"filesaver": "github:DefinitelyTyped/DefinitelyTyped/FileSaver/FileSaver.d.ts#d21f1bd1fd079bbc18bc88ed71d2be7f5707e33a"
<强>使用强>:
var blob = new Blob([this.response], {type: 'application/zip'});
saveAs(blob, 'project.zip');
在运行之前,您需要执行npm install
。
就是这样,希望它有所帮助。
这不会让你
import {SaveAs} from 'fileSaver';
也没有完整的代码完成,但是在 至少它有效
答案 1 :(得分:0)
安装库和打字(@types)。然后,
import {saveAs} from 'file-saver';
的工作。 另外,我必须在System JS配置中明确地将文件保护程序的模块格式设置为cjs:
"packages":{
"file-saver":{
"main":"FileSaver.js",
"format": "cjs"
}
}
据我所知,SystemJS默认将文件保护程序识别为AMD模块。也许在文件保护程序中AMD模块定义有问题,但我对此并不十分了解。 (另见https://github.com/eligrey/FileSaver.js/blob/master/FileSaver.js#L182)
在没有设置cjs模块格式的情况下,我在运行时得到了“fileSaver.saveAs不是函数”。