Angular2:ng2-file-upload:无法使用SystemJS

时间:2016-04-28 07:46:57

标签: file-upload typescript angular systemjs

我正在使用systemJS来管理我的包,所以我将这些行添加到我的systemjs的配置文件中:

{
  map: { 'ng2-file-upload': 'node_modules/ng2-file-upload' },
  packages: {
    'ng2-file-upload': {
        main: './ng2-file-upload/ng2-file-upload.js', // also tried with './ng2-file-upload.js'
        defaultExtension: 'js'
    },
  }
}

我通过import { FileDrop, FileUploader } from 'ng2-file-upload';导入 ng2-file-upload

但导入导致我的应用程序“崩溃”:我的typscript编译器似乎运行良好(我可以看到由于其他代码的日志),但修改不再被转换,所以我无法运行任何东西。我没有与 ng2-file-upload 相关的任何错误日志(除了很多Duplicate identifiers)。

有什么想法吗?

编辑:我已将此软件包从node_modules解压缩到我的应用程序附近的文件夹(vendor),并且我使用了导入的相对路径{ {1}}和FileDrop但是systemjs无法导入:

FileUploader

编辑2:以下是一些细节。 我的应用程序位于Error: SyntaxError: Unexpected token <(…)下,其中包含2个子文件夹:publicsrc。我在build内写了ts代码(很明显),我的tsc将转换后的文件保存到src。目前,我没有捆绑我的文件,因此build内的层次结构与build的层次结构相同。

但是只有 ng2-file-upload 才会发生奇怪的事情:在转换过程中,tsc在src内添加node_modules/ng2-file-upload文件夹。这是树木:

build

我不知道为什么TSC会转发这个包。当然,我public |-- build | |-- core | |-- modules | |-- styles | |-- node_modules | | |-- ng2-file-upload +-- src |-- core |-- modules |-- styes 中排除了node_modules

2 个答案:

答案 0 :(得分:5)

这是我的systemjs.config有效:

      var map = {
    'app': 'app', // 'dist',
    'rxjs': 'node_modules/rxjs',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    '@angular': 'node_modules/@angular',
    'ng2-file-upload': 'node_modules/ng2-file-upload'
};


var packages = {
    'app': { main: 'main.js', defaultExtension: 'js' },
    'rxjs': { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { defaultExtension: 'js' },
    'ng2-file-upload': { main: 'ng2-file-upload.js', defaultExtension: 'js' }
};

答案 1 :(得分:0)

我会试试这个配置:

html { overflow: hidden }

并以这种方式导入:

overflow