Javascript angular2:未捕获的语法错误:意外标记<;

Javascript angular2:未捕获的语法错误:意外标记<;,javascript,typescript,syntax-error,token,angular,Javascript,Typescript,Syntax Error,Token,Angular,我一直收到这个错误uncaughtsyntaxerror:Unexpected-token我想,您已经安装了angular 2 beta版本。在这种情况下,您必须安装其他模块: npm install es6-promise@^3.0.2 es6-shim@^0.33.3 reflect-metadata@0.1.2 rxjs@^5.0.0-beta.0 zone.js@0.5.10 --save 并导入以下脚本: <!-- ES6-related imports --> <

我一直收到这个错误
uncaughtsyntaxerror:Unexpected-token我想,您已经安装了angular 2 beta版本。在这种情况下,您必须安装其他模块:

npm install es6-promise@^3.0.2 es6-shim@^0.33.3 reflect-metadata@0.1.2 rxjs@^5.0.0-beta.0 zone.js@0.5.10 --save
并导入以下脚本:

<!-- ES6-related imports -->
<script src="../node_modules/angular2/bundles/angular2-polyfills.min.js"></script>
<script src="../node_modules/es6-shim/es6-shim.min.js"></script>
<script src="../node_modules/systemjs/dist/system.js"></script>
<script>
  //configure system loader
  System.config({defaultJSExtensions: true});
</script>
<script src="../node_modules/rxjs/bundles/Rx.js"></script>
<script src="../node_modules/angular2/bundles/angular2.min.js"></script>
<script src="../node_modules/angular2/bundles/http.min.js"></script>
<script src="../node_modules/angular2/bundles/router.min.js"></script>
<script>
  //bootstrap the Angular2 application
  System.import('app/app').catch(console.log.bind(console));
</script>

//配置系统加载器
System.config({defaultJSExtensions:true});
//引导Angular2应用程序
System.import('app/app').catch(console.log.bind(console));
编辑:


事实上,这些在

中引入的更改存在几个问题:

您的组件选择器是:“我的应用”

<app>Loading...<app>
应该是

<my-app>Loading...</my-app>
System.import('app/boot');
{defaultExtension: 'ts'}}
<script src="https://code.angularjs.org/tools/typescript.js"></script>
另外,除非您正在将typescript编译为java脚本。。您应该更改此行并导入typescript.js

{defaultExtension: 'js'}}
应该是

<my-app>Loading...</my-app>
System.import('app/boot');
{defaultExtension: 'ts'}}
<script src="https://code.angularjs.org/tools/typescript.js"></script>
{defaultExtension:'ts'}
此外,您缺少一些导入:

<script src="https://code.angularjs.org/2.0.0-beta.0/angular2-polyfills.js"></script>
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.0/Rx.js"></script>


下面是一段代码运行的示例

在我的例子中,错误是由于忘记包含


在beta 3中使用Angular 2快速入门中推荐的rxjs v5.0.0-beta.0包实现了这一点。我从npm包切换到Angular beta CDN上的包,效果很好

<script src="https://code.angularjs.org/2.0.0-beta.3/Rx.js"></script>

今天使用Angular 2.0.0-beta.0和rxjs实现了这一点。必须改变

import * as Rx from 'rxjs';


因此,上面的答案似乎是正确的,但这里有一些关于错误本身的信息(仅适用于遇到相同问题的其他人,他们想知道自己做错了什么),因为它可以出现在每个单独的导入中,并且很难跟踪

每当需要文件并且Web服务器被配置为只提供
/
而不是
404找不到文件页面时,它就会出现


/
通常会转换为
/index.html
,其中第一个字符通常是
请确保在导入时添加完整路径。另外,请确保在导入的文件前面添加./in,这些文件位于同一目录中

因此,如果file.ts要导入驻留在同一目录中的service.ts,则应按如下方式编写导入:

import {service} from './service'
如果你写信

import {service} from 'service'
在我的例子中,你会得到这个错误

import {Observable} from 'rxjs/rx';
这是一个错误

我改成

import {Observable} from 'rxjs/Rx';

然后问题就消失了。所以请注意区分大小写。

这是因为SystemJS试图从相对路径而不是库本身获取rxjs方法

我必须在Systemjs配置中插入这行代码
System.config({})

我花了几个小时才找到这个解决方案



您使用什么作为服务器?当我在服务器上糟糕地映射路由,它返回index.html而不是javascript时,我通常会遇到这种错误。已经有几个问题存在类似的错误。你有没有检查过它们@Günter Zöchbauer到目前为止我已经尝试了5种解决方案,要么我的代码中已经有了它们,要么它没有帮助:sI只是使用了“npm安装”,所以通常它都安装正确了?node_modules文件夹的大小约为90mb。@Edward如果您使用angular 2.0.0-beta.0,则这些软件包必须单独安装。好的,我会试试这个,快速问一下,我是否只需要将其导入index.html或在我使用angular2的每个“类”中?@Edward only导入
index.html
它修复了非法令牌问题,但是我得到了这个错误“UncaughtRangeError:超出了最大调用堆栈大小”。我想这与我刚才所做的更改无关,但与我的应用程序总体上无关?是的,对不起,整个应用程序/我的应用程序都错了我编辑了我的问题,我有两个项目混淆了,谢谢。你的plunker似乎工作正常,但是当我对我的项目进行这些更改时,它给出了“未捕获的RangeError:超出了最大调用堆栈大小”就像这里说的。即使禁用了所有功能,我想我还是要从头开始,这个angular2的东西让我做噩梦..问题可能出在其中一个文件“hall list.component”、“./hall detail.component”、“./hall.service”。。你可以发布它们吗?我无法重新生成你的“最大调用堆栈”问题。但这是你的工作。。我刚刚修复了一些导入并删除了您的2条注释/*实现OnInit*/这个答案对我很有帮助。它向我指出了一个事实,那就是我的输入中有一个拼写错误。我用的是“angular2/Router”而不是“angular2/Router”,我希望我能在这个回答中用另一个类似的“rxjs”作为“rxsj”,并且得到了这个错误。导致我重新评估导入并修复问题。谢谢谢谢这正好击中了我问题的核心,因为我还不太熟悉AppEngine!这个答案对我也有帮助。使用Fiddler,我看到所有丢失的包都显示为蓝线和相同的大小。我有时在引用目录时也会遇到一些问题,例如有时从“/rxjs/Rx”引用
有时必须是来自“rxjs/Rx”的
记不起哪一个在哪里
import {service} from 'service'
import {Observable} from 'rxjs/rx';
import {Observable} from 'rxjs/Rx';
paths: {
 'rxjs*': 'node_modules/rxjs/bundles/Rx.min.js'
}