Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何将文件夹添加到SystemJS配置映射?_Angular_Typescript_Systemjs - Fatal编程技术网

Angular 如何将文件夹添加到SystemJS配置映射?

Angular 如何将文件夹添加到SystemJS配置映射?,angular,typescript,systemjs,Angular,Typescript,Systemjs,我正在尝试使用TS和SystemJS的angular 2。 我想在system.config.js中映射我的一个文件夹 |_ app | |_ standalone | | |_ rest.service.js | | |_ rest.service.js.map | | |_ rest.service.ts | |_ app.module.ts |_ node_modules |_ system.config.js 这是我在system.config.js中的一个简

我正在尝试使用TS和SystemJS的angular 2。 我想在
system.config.js
中映射我的一个文件夹

|_ app
|   |_ standalone
|   |  |_ rest.service.js
|   |  |_ rest.service.js.map
|   |  |_ rest.service.ts
|   |_ app.module.ts
|_ node_modules
|_ system.config.js
这是我在
system.config.js
中的一个简化版本:

System.config({
        paths: {
            'npm:': 'node_modules/'
        },
        map: {           
            '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
            'rxjs': 'npm:rxjs',
            'stalone': 'app/standalone'
        },
        packages: {
            app: {
                main: './main.js',
                defaultExtension: 'js'
            },
            stalone: {
                defaultExtension: 'js'
            },
            rxjs: {
                defaultExtension: 'js'
            }
        }
    });
})(this);
我在app.module.ts中的两个导入是:

import { RestService } from "stalone/rest.service";
import { NgModule }    from "@angular/core";
“@angular.core”导入时没有问题,但导入“stalone/rest.service”时,我得到错误:

Cannot find module 'stalone/rest.service'.

我只包括了我认为与此事有关的文件。如果我遗漏了任何错误,请告诉我。

如果在typescript编译过程中出现此错误,请添加:

"compilerOptions": {
   ...
    "paths": {
        "standalone/*": [ "app/standalone/*" ]
    }
}
到您的tsconfig.json


注意:您需要TypeScript版本2.0或更高版本。

尝试这样做。'stalone':'./app/standalone'TypeScript在编译期间未使用
system.js
。如果我理解正确,您在编译期间会遇到此错误,因此这实际上意味着
TypeScript
无法找到您的模块,而不是在运行时找到的
system.js

它确实适用于angular,因为typescript正在所有找到它的
node\u模块
文件夹下查找文件,但这不适用于您,因为您的模块不在
node\u模块

这就是为什么您需要告诉ts编译器在哪里可以找到您的模块,如下所示:

{
  "compilerOptions": {
    "paths": {
      "stalone/*": ["app/standalone/*"]
    }
}

为了更详细地了解所有这些是如何工作的,您应该真正检查typescript的模块解析文档。

我也遇到了同样的问题,还没有运气。如果我发现有用的东西,我会告诉你的!我不确定映射会有什么帮助,因为您在app下,可以使用“/standalone/rest.service”导入{RestService}从“/standalone/rest.service”导入app.module.ts。SystemJS需要一个模块。