【问题标题】:Unexpected token import意外的令牌导入
【发布时间】:2016-06-18 12:00:21
【问题描述】:

由于某种原因,它在 angular2 上给了我错误的意外令牌导入。我对它进行了调试,发现当我导入 component-mymovies 时错误出现在 app-component.ts 上……这是我的主要文件…… app/app-component.ts:

import {Component} from 'angular2/core';
import {myMoviesComponent} from './component-mymovies'

@Component({
    selector: 'my-shop',
    template: 
    `
    <h1>Welcome to the shop!</h1>
    <p>Weve the following movies available</p>
    <myMovies></myMovies>
    `,
    directives :[myMoviesComponent]
})
export class myShopComponent { 


}

app/component-mymovies.ts:

import {Component} from 'angular2/core';

@Component({
    selector: 'myMovies',
    template: 
    `
    <ul>
        <li>Some Movie</li>
        <li>Another Movie</li>
        <li>Another Another Movie</li>
        <li> Another Another Another Movie</li>
    </ul>

    `
})
export class myMoviesComponent { 


}

Main.ts:

import {bootstrap}    from 'angular2/platform/browser';
import {myShopComponent} from './app-component';

bootstrap(myShopComponent);

和 index.html:

<html>
  <head>
    <title>Angular 2 QuickStart</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">    
    <link rel="stylesheet" href="styles.css">

    <!-- 1. Load libraries -->
    <!-- IE required polyfills, in this exact order -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>   

    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>


    <script>
      System.config({
        packages: {        
          app: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
      System.import('app/main')
            .then(null, console.error.bind(console));
    </script>
  </head>

  <!-- 3. Display the application -->
  <body>
    <my-shop>Loading...</my-shop>
  </body>
</html>

错误:

SyntaxError: Unexpected token import
    Evaluating https://angular2mehul-amanuel2.c9users.io/app/component-mymovies.js
    Error loading https://angular2mehul-amanuel2.c9users.io/app/component-mymovies.js as "./component-mymovies" from https://angular2mehul-amanuel2.c9users.io/app/app-component.js
    at eval (native)
    at SystemJSLoader.__exec (https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:1395:16)
    at SystemJSLoader.<anonymous> (https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:3258:18)
    at SystemJSLoader.<anonymous> (https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:3526:24)
    at SystemJSLoader.<anonymous> (https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:3774:26)
    at SystemJSLoader.<anonymous> (https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:4121:26)
    at SystemJSLoader.instantiate (https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:4357:28)
    at https://angular2mehul-amanuel2.c9users.io/node_modules/systemjs/dist/system.src.js:333:33
    at Zone.run (https://angular2mehul-amanuel2.c9users.io/node_modules/angular2/bundles/angular2-polyfills.js:1243:24)
    at zoneBoundFn (https://angular2mehul-amanuel2.c9users.io/node_modules/angular2/bundles/angular2-polyfills.js:1220:26)Zone.run @ angular2-polyfills.js:1243zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$$internal$$tryCatch @ angular2-polyfills.js:468lib$es6$promise$$internal$$invokeCallback @ angular2-polyfills.js:480lib$es6$promise$$internal$$publish @ angular2-polyfills.js:451lib$es6$promise$$internal$$publishRejection @ angular2-polyfills.js:401(anonymous function) @ angular2-polyfills.js:123Zone.run @ angular2-polyfills.js:1243zoneBoundFn @ angular2-polyfills.js:1220lib$es6$promise$asap$$flush @ angular2-polyfills.js:262

这里是我编写代码的地方...

https://ide.c9.io/amanuel2/angular2mehul

【问题讨论】:

    标签: javascript angularjs typescript angular


    【解决方案1】:

    查看您的https://angular2mehul-amanuel2.c9users.io/app/component-mymovies.js 后,它似乎不是一个已编译的 JS 文件,但它包含 TypeScript 代码。这就是 SystemJS 无法导入它的原因。

    您需要将 TypeScript 文件中的代码编译到您的 JS 文件中。

    如何生成app/component-mymovies.js 文件?使用tsc?

    【讨论】:

    • 我确实将我的 typescript 文件编译为 js 文件.. 你没有看其他文件夹
    • 但是我不知何故克隆了另一个项目并在这里修复了它..ide.c9.io/amanuel2/angular2practice5-cloned#openfile-README.md感谢您的帮助!
    • 这很奇怪,但是您的 JS 文件中似乎没有正确的内容...您可以检查一下吗?
    猜你喜欢
    • 2019-03-21
    • 2020-03-16
    • 2020-05-07
    • 1970-01-01
    • 2017-05-20
    • 2019-08-07
    • 2018-09-24
    • 2018-11-10
    相关资源
    最近更新 更多