Angular2/ Material2 - Uncaught SyntaxError: Unexpected token import

Angular2/ Material2 - Uncaught SyntaxError: Unexpected token import

当我更新到新的 Angular2/Material2 alpha 8.1 时,我 运行 出现了几个错误。 首先,最新的软件包似乎需要 Typescript 2.0(使用 "readonly")——所以我安装了 typescript 2.0 beta。

但现在我每次访问该页面时都会收到 "Uncaught SyntaxError: Unexpected token import"。

在 Typescript 2.0 中我需要 set/change 什么吗?

这是我的 tsconfig.json(尝试过的目标:es5 以及...):

{
  "compilerOptions": {   
    "lib": [ "es6", "es5", "es2015", "dom" ],
    "module": "commonjs",
    "moduleResolution": "node",
    "target": "es6",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": true,
    "noImplicitAny": false
  },
  "exclude": [
    "bin",
    "node_modules",   
    "wwwroot/dist"
  ]
}

感谢您的帮助!

我 运行 遇到了这个问题,你需要设置你的包,并关联到 js 文件的 umd 版本....看看这是否有帮助。

系统内-config.ts

const packages: any = {
....
  "@angular2-material/button": { 
      main: "button.umd.js", 
      defaultExtension: "js", 
      format: "cjs" 
    },
....
};

import 是有效的 ES6,但由于浏览器更多地支持 ES5(至少在模块引用方面),import 不是一个有效的标记。 umd 包不使用导入。

实际上我错了两件事:

1.) This answer fixed part of the problem

2.) 而且...让我傻眼:我不知道为什么,但我的导入语句有误,

而不是

import {MdButtonToggleModule} from '@angular2-material/button-toggle';

我用过

import {MdButtonToggleModule} from '@angular2-material/button-toggle/button-toggle';

what 当然指向了错误的模块格式 (es2015)。

它是 alpha-8 重大变化的一部分

https://github.com/angular/material2/blob/master/CHANGELOG.md