2016-09-19 94 views
4

我在使用IIS的ASP.NET Core解决方案上使用VS2015 RC3,Angular2 2.0.0。Kendo UI Angular:(SystemJS)意外的令牌<

每当我尝试添加一个新的UI模块,比如下拉菜单或输入,我得到一个SystemJS错误,但奇怪的是,我的按钮,没有任何问题,工作...

master.module.ts

import { ButtonsModule } from '@progress/kendo-angular-buttons'; 
import { DropDownsModule } from '@progress/kendo-angular-dropdowns'; 
import { InputsModule } from '@progress/kendo-angular-inputs'; 

@NgModule({ 
    imports: [ 
     CommonModule, 
     MasterRouting, 
     ButtonsModule, // => Works fine and button is showing as expected 
     InputsModule, // Error : Unexpected Token 
     DropDownsModule // Error : Unexpected Token 
    ], 
    [...] 

我得到这些错误(这取决于我尝试在我的“进口”阵列添加哪些模块:

InputsModule错误:在导入指向在我master.modules.ts线

zone.js:192 Error: (SystemJS) Unexpected token < SyntaxError: Unexpected token < at Object.eval (http://localhost:39351/app/master/master.module.js:35:30)

DropdownsModule错误:

zone.js:192 Error: (SystemJS) Unexpected token < SyntaxError: Unexpected token < at Object.eval (http://localhost:39351/node_modules/@progress/kendo-angular-dropdowns/dist/npm/js/combobox.component.js:630:19)

这一个显示我的剑道库导入:

module.exports = require("@telerik/kendo-dropdowns-common/dist/npm/js/bundle");

我做当然,我在我的wwwroot ...

编辑:正如你可以看到在错误列表中,它试图评估@telerik包与一个不正确的路径,所以我想错误是从那里来的,但为什么他们不为他们设置SystemJS配置telerik软件包在文档中?我在那里错过了什么?

enter image description here

我完全丧失,因此任何帮助,不胜感激......


这里有一些其他文件的情况下,它们可以帮助:

tsconfig.json

{ 
    "compilerOptions": { 
    "outDir": "./wwwroot/app/", 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "inlineSourceMap": true, 
    "inlineSources": true 
    }, 
    "exclude": [ 
    "./node_modules/**", 
    "./wwwroot/**", 
    "./typings/**" 
    ] 
} 

systemjs.config.js

(function (global) { 
    // map tells the System loader where to look for things 
    var map = { 
     // Our components 
     'app': 'app', // 'dist', 

     // Angular2 + rxjs 
     '@angular': 'node_modules/@angular', 
     'rxjs': 'node_modules/rxjs', 
     'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api', 
     // Kendo Angular2 
     '@progress/kendo-angular-buttons': 'node_modules/@progress/kendo-angular-buttons', 
     '@progress/kendo-angular-dropdowns': 'node_modules/@progress/kendo-angular-dropdowns', 
     '@progress/kendo-angular-inputs': 'node_modules/@progress/kendo-angular-inputs', 
    }; 

    // packages tells the System loader how to load when no filename and/or no extension 
    var packages = { 
     // Our components 
     'app': { defaultExtension: 'js'}, 

     // Angular2 + rxjs 
     'rxjs': { defaultExtension: 'js' }, 
     'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' }, 

     '@progress/kendo-angular-buttons': { 
      main: './dist/npm/js/main.js', 
      defaultExtension: 'js' 
     }, 
     '@progress/kendo-angular-dropdowns': { 
      main: './dist/npm/js/main.js', 
      defaultExtension: 'js' 
     }, 
     '@progress/kendo-angular-inputs': { 
      main: './dist/npm/js/main.js', 
      defaultExtension: 'js' 
     }, 
    }; 

    /**** node_modules basic config ! Do not touch ****/ 
    // name of packages to assimilate (angular 2 only here) 
    var ngPackageNames = [ 
     'common', 
     'compiler', 
     'core', 
     'forms', 
     'http', 
     'platform-browser', 
     'platform-browser-dynamic', 
     'router', 
     'router-deprecated', 
     'upgrade', 
    ]; 

    // Individual files (~300 requests): 
    function packIndex(pkgName) { 
     packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' }; 
    } 

    // Bundled (~40 requests): 
    function packUmd(pkgName) { 
     packages['@angular/' + pkgName] = { main: 'bundles/' + pkgName + '.umd.js', defaultExtension: 'js' }; 
    } 

    // Most environments should use UMD; some (Karma) need the individual index files 
    var setPackageConfig = System.packageWithIndex ? packIndex : packUmd; 
    // Add package entries for angular packages 
    ngPackageNames.forEach(setPackageConfig); 

    var config = { 
     map: map, 
     packages: packages 
    }; 
    System.config(config); 
    /**** node_modules basic config ! Do not touch ****/ 
})(this); 

回答

0

这是因为在SystemJS没有被管理的@telerik包确实...

正如你可以按照Telerik的文档,你可以在看plunkr链接@telerik软件包以添加到systemjs.config.js文件中。

请参阅此链接:http://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/


我可以在故宫看到的依赖关系的包之间的不同的依赖性,如果Telerik的球队不mentionning他们来说,这可能意味着一个绝对不能担心因为应该使用依赖关系进行管理。

这是我唯一合乎逻辑的解释,这意味着我不正确使用systemJS文件。 欢迎填写此答案。

0

那么我也检查了这个问题,它似乎他们的按钮快速入门systemjs.config.js是不同的,然后他们的按钮plunkr代码示例systemjs.config.js 所以我要求他们的正确方法的指导。

+0

我做了它的工作,所以我的建议是做一些看起来像plunkr的东西,这样你的systemJS也接受@telerik包的依赖关系。 –

+0

这应该是一个评论而不是答案。请澄清您的答案以消除猜测或删除答案。一旦你有足够的声誉,你可以留下评论。 –

+0

嗯,它更像是一些有用的信息,在2个systemjs.config.js文件之间存在一个增量,所以人们应该检查该问题以解决问题。另外Telerik在他们说的这个时候没有任何指导。 – Josh