我从typescript文件中的以下导入开始。注意不。ts扩展意味着我正在导入一个typescript模块:

import githubService from './github.service';

它被传输到:
var github_service_1 = require('./github.service');

当systemjs尝试加载此模块时,它会发出以下http命令:
GET /github.service

而不是GET /github.service.js。这显然行不通。
如何使typescript与systemjs一起工作?
这是我的tsconfig.json文件:
{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "outDir": "./dist",
        "declaration": false,
        "noImplicitAny": false,
        "removeComments": true,
        "noLib": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "sourceMap": true
    },
    "exclude": [
        "node_modules"
    ],
    "compileOnSave": false
}

我还试图将上面的module选项更改为system(将生成的模块格式从commonjs更改为systemjs),但我仍然遇到同样的问题。

最佳答案

我认为您的问题是模块名中缺少js扩展。不久前,system.js更改了此选项,现在可以在不显式指定“.js”的情况下解析它们,您必须在index.html中设置system.js选项,如下所示:

System.defaultJSExtensions = true;

更多信息:defaultJSExtensions
编辑
正如@naresh指出的,defaultjsextensions现在已经过时了。现在看来,更可取的方法是在config中使用packages选项。
希望这有帮助。

07-24 09:23