JavaScript 错误 : Unexpected anonymous System. 注册调用

标签 javascript typescript systemjs

Visual Studio 2015 中有一个简单的 TypeScript 项目,其中包含两个 TypeScript 文件:

foo.ts

export class Foo {
    bar(): string {
        return "hello";
    }
}

app.ts

/// <reference path="foo.ts"/>
import {Foo}  from './foo';
var foo = new Foo();

foo.ts 编译成:

foo.js

System.register([], function(exports_1) {
    var Foo;
    return {
        setters:[],
        execute: function() {
            Foo = (function () {
                function Foo() {
                }
                Foo.prototype.bar = function () {
                    return "hello";
                };
                return Foo;
            })();
            exports_1("Foo", Foo);
        }
    }
});

当我在 html 页面中加载 foo.js 时,Google Chrome 控制台显示错误:

“system.src.js:4935 Uncaught TypeError: Unexpected anonymous System.register”

很明显,这是因为线

 System.register([], function(exports_1) 

tsconfig.json 中的编译器选项:

 {
 "compilerOptions": {
    "target": "es5",
    "module": "system"
  }
}

index.html 中的脚本下载:

<script src="./lib/system.js"></script>
<script src="./app/foo.js"></script>
<script src="./app/app.js"></script>

tsc版本:1.9.0-dev.20160322

当我不导入任何东西并将所有内容都放在一个 app.js 文件中时,代码可以正常工作,没有任何错误。 如何克服错误?

最佳答案

我已经找出问题所在,我以错误的方式初始化了应用程序。

初始化应该在index.html中加入,像这样:

<script>
    System.config({
          packages: { 'app': { defaultExtension: 'js' } }
    });
    System.import('app/app');
</script>

以这种方式包含 foo.jsapp.j 是错误的:

<script src="./app/foo.js"></script>
<script src="./app/app.js"></script>

关于JavaScript 错误 : Unexpected anonymous System. 注册调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36176523/

相关文章:

javascript - Ng-click - 调用多个方法时顺序是否重要?

angular - Ionic 2 中的数组警报

javascript - 如何等待 api 的数据加载,然后在 UI 中执行另一个操作?

angular - 如何使用 systemjs 和 Angular2 导出 typescript 枚举?

javascript - 使用 redux observable 取消请求不起作用

javascript - 带有用于选择字段集的复选框选项的 HTML 表单

javascript - 从javascript获取默认打印机名称?

node.js - 不再能够在 Angular 4.2.3 中导入 BrowserAnimationsModule

angular - 如何从 Angular 导入中删除 .js 后缀

angular - 如何在 angular-cli 的生产 dist 文件夹中捆绑延迟加载的组件?