Angular2 - 无法从npm添加组件

时间:2016-04-03 12:08:46

标签: angularjs typescript angular

我刚刚从名为ng2-easy-table的npmjs下载了角度组件(我是这个组件的创建者,所以也许我在创建它时犯了一些错误)。

的package.json

{
  "name": "untitled",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "concurrently \"npm run tsc:w\" \"npm run lite\" \"npm run styles\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server",
    "typings": "typings"
  },
  "dependencies": {
    "angular2": "2.0.0-beta.13",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.35.0",
    "ng2-easy-table": "0.0.12",
    "node-sass": "^3.4.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.24",
    "zone.js": "^0.6.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.1.0",
    "typescript": "^1.8.7",
    "typings": "^0.7.5"
  },
  "author": "",
  "license": "ISC"
}

然后我创建了简单的app.component.ts来添加ng2-easy-table指令。

app.component.ts

import {Component} from 'angular2/core';

import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from 'ng2-easy-table/app/app.component';

@Component({
  selector: 'app',
  templateUrl: 'app/index.html',
  directives: [AppComponent]
})

export class IndexComponent { }

bootstrap(IndexComponent, []);

node_modules中,它如下所示: node_moules

System.config

<script>
    System.config({
        packages: {
            app: {
                format: 'register',
                defaultExtension: 'js'
            }
        }
    });
    System.import('app/app.component')
            .then(null, console.error.bind(console));
</script>

但是,当我启动应用程序npm start时,我将从控制台获取:

  

获取http://localhost:3002/ng2-easy-table/app/app.component 404(不是   实测值)

     

错误:加载http://localhost:3002/ng2-easy-table/app/app.component(...)

时出现XHR错误(404 Not Found)

enter image description here

修改

在添加@Thierry Templier提供的Config.style后,我得到: enter image description here

1 个答案:

答案 0 :(得分:1)

您需要在SystemJS的配置中为库添加地图块:

<script>
    System.config({
        map: {
          'ng2-easy-table': 'node_modules/ng2-easy-table'
        },
        packages: {
            app: {
                format: 'register',
                defaultExtension: 'js'
            },
            'ng2-easy-table': {
                format: 'register',
                defaultExtension: 'js'
            } 
        }
    });
    System.import('app/app.component')
            .then(null, console.error.bind(console));