Node.js 从Angular2应用程序链接到全局节点模块文件夹

Node.js 从Angular2应用程序链接到全局节点模块文件夹,node.js,typescript,npm,angular,Node.js,Typescript,Npm,Angular,由于Angular2 CLI在本地文件夹中安装了125mb以上的节点模块,我希望有一个集中式节点模块文件夹(使用npm update-g保存到C磁盘),而不是应用程序中包含的普通本地文件夹 因此,在typescript文件中,我们之前导入了角核,如下所示: import { Component } from '@angular/core'; 但显然这不起作用,是否可以在某个地方放置前缀或硬URL,告诉应用程序在全局文件夹中搜索模块?修改SystemJs配置(通常是SystemJs.confi

由于Angular2 CLI在本地文件夹中安装了125mb以上的节点模块,我希望有一个集中式节点模块文件夹(使用npm update-g保存到C磁盘),而不是应用程序中包含的普通本地文件夹

因此,在typescript文件中,我们之前导入了角核,如下所示:

import { Component } from '@angular/core'; 

但显然这不起作用,是否可以在某个地方放置前缀或硬URL,告诉应用程序在全局文件夹中搜索模块?

修改
SystemJs
配置(通常是
SystemJs.config.js
文件),因此它会将
@angular
映射到您的
节点模块\/angular
文件夹,而不是本地的

var  map = {
  'app' : 'app',
  '@angular' : 'C:/node_modules/@angular', // path to centralized repo
};

下面是systemjs.config文件的内容:

 (function(global) {

    // map tells the System loader where to look for things    
    var map = {
        'app':                        'src',         
        '@angular':                   'global location'
    };

    // packages tells the System loader how to load when no filename and/or no extension
    var packages = {
        'app':                        { main: 'main.js',  defaultExtension: 'js' },
        'rxjs':                       { defaultExtension: 'js' },

    //can add as per your requirement
    };

    var packageNames = [
        '@angular/common',
        '@angular/compiler',
        '@angular/core',
        '@angular/http',
        '@angular/platform-browser',
        '@angular/platform-browser-dynamic',
        '@angular/router',
        '@angular/router-deprecated',
        '@angular/testing',
        '@angular/upgrade',
    ];

    // add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
    packageNames.forEach(function(pkgName) {
        packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
    });


})(this);