Angular2 - 在SystemJS中导入第三方javascript

use*_*794 8 javascript express gulp angular

由于某种原因,fileSaver未被映射.angular2-jwt工作正常.

我做npm install file-saver -save了文件保护程序,然后引用如下(我有一个gulp任务将js文件移动到libs目录,我看到那里的文件)

在index.htmlI中已将脚本包含在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>
Run Code Online (Sandbox Code Playgroud)

component.ts

这里没有找到fileSaver

import {SaveAs} from 'fileSaver';     
Run Code Online (Sandbox Code Playgroud)

我得到的错误就是这个

 error TS2307: Cannot find module 'fileSaver'.   
Run Code Online (Sandbox Code Playgroud)

知道这里有什么问题吗?

Ser*_*gio 2

就我而言,我让它像这样工作:

包.json

"dependencies": {
    // ... all angular dependencies
    "file-saver": "1.3.2"
 },
Run Code Online (Sandbox Code Playgroud)

索引.html

<!-- all angular dependencies and other 3rd party -->
<script src="node_modules/file-saver/FileSaver.js"></script>
Run Code Online (Sandbox Code Playgroud)

打字.json

// other typings needed
"filesaver": "github:DefinitelyTyped/DefinitelyTyped/FileSaver/FileSaver.d.ts#d21f1bd1fd079bbc18bc88ed71d2be7f5707e33a"
Run Code Online (Sandbox Code Playgroud)

用法

var blob = new Blob([this.response], {type: 'application/zip'});
saveAs(blob, 'project.zip');
Run Code Online (Sandbox Code Playgroud)

您需要npm install在运行之前执行 a 。

就是这样,希望有帮助。

这不会让你import {SaveAs} from 'fileSaver';也没有完整的代码完成,但至少它可以工作