将模块打包成一个 "namespace"

bundle modules into one "namespace"

我是 angular2 和 system js 的新手。

当我使用

import {Component, OnInit} from 'angular2/core';

在我打字稿的顶部 class 我知道 'angular2/core' 实际上指的是许多不同的 classes.

我想知道如何在我自己的 system.js 环境中进行设置。

例如,如果我的应用程序文件夹中有一个名为 model 的文件夹,其中包含我项目中每个 "object" 的单独 class:

app/model/user.ts app/model/object1.ts app/model/object2.ts app/model/object3.ts

现在为了在我的应用程序的其他部分使用这些 classes,我必须在我的 ts class

的顶部单独导入每个文件
import {User} from '../../model/user';
import {object1} from '../../model/object1';
import {object2} from '../../model/object2';
import {object3} from '../../model/object3';

如何更改它以便我可以像这样导入:

import {User, object1, object2, object3} from '../../model/';

这里是 mt 当前 system.js 设置:

System.config({
    map: { 'app': './Modules/Shifts/app' },
    packages: {
        //sets the root path of the Angular2 App
        'Modules/Shifts/app': {               
            format: 'register',
            defaultExtension: 'js'
        }
    }        
});
System.import('app/boot')
        .then(null, console.error.bind(console));

我该如何设置?

提前致谢

简单的解决方案是创建一个重新导出必要的帮助文件 类。

您需要做的是创建一个名为 ../../model.ts 的文件,内容为:

export {User} from './model/user'
export {object1} from './model/object1'
// ...

现在您可以将导入重写为

import {User, object1, object2, object3} from '../../model';

或者您也可以使用 ../../model/index.ts 调整路径 export {User} from './user'