【问题标题】:Error: (SystemJS) Unexpected token < SyntaxError: Unexpected token < at eval (<anonymous>) Angular 2错误:(SystemJS)意外的令牌< SyntaxError:意外的令牌<在eval(<anonymous>)Angular 2
【发布时间】:2017-07-08 16:11:53
【问题描述】:

我正在尝试使用 angular 2 的整页,

在我的 app.module.ts 中导入它时出现以下错误。

"(SystemJS) Unexpected token <
    SyntaxError: Unexpected token <
        at eval (<anonymous>)
        at Object.eval (http://localhost:3000/app/app.module.js:16:22)
        at eval (http://localhost:3000/app/app.module.js:40:4)
        at eval (http://localhost:3000/app/app.module.js:41:3)
        at eval (<anonymous>)
    Evaluating http://localhost:3000/node_modules/ng2-fullpage
    Evaluating http://localhost:3000/app/app.module.js
    Evaluating http://localhost:3000/main.js
    Error loading http://localhost:3000/main.js"

以下是我的文件:

systemjs.config.js

(function (global) {
  System.config({
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',

      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      // '@jquery':'npm:jquery/jquery.min.js',

      // other libraries
      'rxjs':                      'npm:rxjs',
      'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
      'ng2-fullpage':               'npm:ng2-fullpage',
      // 'jquery':                     'npm:jquery/dist/jquery.js',
      'fullpage.js':                'npm:fullpage.js/jquery.fullPage.js'
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
      app: {
        // format:'register',
        defaultExtension: 'js'
      },
      rxjs: {
        defaultExtension: 'js'
      }
    }
  });
})(this);

app.module.ts

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {HttpModule} from '@angular/http';
import {routing} from './app.routing';
import {NavbarComponent} from './components/navbar/navbar.component';
import { MnFullpageDirective } from 'ng2-fullpage';
import {MnFullpageService} from 'ng2-fullpage';

import { AppComponent }  from './app.component';
import { ResumeComponent } from './components/resume/resume.component';
import { AboutComponent } from './components/about/about.component';
import {HomeComponent} from './components/home/home.component';



@NgModule({
  imports:      [ BrowserModule,HttpModule, routing ],
  declarations: [ AppComponent, ResumeComponent, AboutComponent, HomeComponent, NavbarComponent,
    MnFullpageDirective
  ],
  bootstrap:    [ AppComponent ],
  providers: [MnFullpageService]
})
export class AppModule { }

index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Nakul Chawla</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://bootswatch.com/cyborg/bootstrap.min.css" />
    <link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="styles.css">
    <!--<link rel="stylesheet" href="../node_modules/fullpage.js/dist/jquery.fullpage.css" />-->
    <!--<script src="node_modules/jquery/jquery.js"></script>-->

    <!-- Polyfill(s) for older browsers -->
    <script src="node_modules/core-js/client/shim.min.js"></script>

    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>

    <script src="systemjs.config.js"></script>
    <script src="node_modules/jquery/dist/jquery.min.js"></script>
    <script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
    <script>
      System.import('main.js').catch(function(err){ console.error(err); });
    </script>
  </head>

  <body>
  <base href="/">
    <my-app>Loading AppComponent content here ...</my-app>
  </body>
</html>

我正在从引用 plunkr 的 npm 页面获取帮助:

npm 包

enter link description here

http://embed.plnkr.co/1p9zKp4CNI1HncAh1h9m

plunkr 我从其他堆栈溢出页面寻求帮助并尝试了所有方法,但错误似乎仍然存在。

我在 stackoverflow 上发布了另一个问题的变体,两个错误都有相同的问题。

Unable to load ng2-fullpage in my angular-2 quickstart app

我不知道如何解决这个问题,现在尝试了一切。

提前致谢。

【问题讨论】:

  • 不知道这是否是问题所在,但您在import {HomeComponent} from './components/home/home.component' 错过了分号;
  • @Kinduser 不,这不是问题所在。我添加并检查了。我这里用分号改一下代码,问题依旧。
  • 好吧。在控制台中使用node -vnpm -v 并将结果粘贴到此处。
  • @Kinduser node -v 导致v7.5.0npm -v 导致4.1.2
  • 告诉我你的 Angular 2 版本。

标签: javascript angularjs node.js angular fullpage.js


【解决方案1】:

肯定有很多问题可能导致这个错误。我在将 SystemJS 与诸如 live-server 之类的 Web 服务器结合使用时得到了它,它为单页 Web 应用程序提供了一个方便的功能,即将所有不存在的文件路由到项目的 index.html。因此,如果 SystemJS 尝试解析未安装的依赖项,网络服务器将显示最常以 &lt;!DOCTYPE html&gt; 开头的 index.html。这可能是错误中提到的意外&lt;

解决方案:

  • 检查您的服务器是否将不存在的文件路由到 html 文件。
  • 停止路由以进行调试。
  • 启动您的应用程序。使用浏览器工具中的网络选项卡找出哪些文件出现 404 错误。
  • 使用jspm install my_dependency 安装缺少的依赖项。
  • 迭代直到找到所有文件。
  • 再次启用将丢失文件路由到某个 html 文件的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-22
    • 2011-12-20
    • 2017-09-04
    • 1970-01-01
    • 2011-11-21
    • 2017-08-05
    • 2021-03-31
    • 2019-04-20
    相关资源
    最近更新 更多