SystemJS找不到RxJS根目录

时间:2016-03-10 05:03:20

标签: javascript typescript npm rxjs systemjs

SystemJS似乎没有问题地加载rxjs模块,但是在rxjs目录本身上抛出了404 Not Found。所有模块都是最新版本,这只是Windows上的一个问题,它适用于osx。

获取http://localhost:8080/node_modules/rxjs/ 404(未找到)

错误:错误:XHR错误(未找到404) XHR完成加载:GET“localhost:8080 / node_modules / rxjs / Subject.js”。

XHR完成加载:GET“localhost:8080 / node_modules / rxjs / operator / toPromise.js”。

Module loads & Error

<script>
    System.config({
        packages: {
            app: {
                format: 'register',
                defaultExtension: 'js',

            },
            'components':{ format: 'register' },
            'rxjs': {defaultExtension: 'js'}
        },
        map: {'app': '/components',
            'rxjs': '../node_modules/rxjs',
            },


    });
    System.import('components/notes.js')
            .then(null, console.error.bind(console));
</script>

+-- angular2@2.0.0-beta.9
+-- bootstrap@3.3.6
+-- es6-promise@3.0.2
+-- es6-shim@0.33.3
+-- jquery@2.2.1
+-- reflect-metadata@0.1.2
+-- rxjs@5.0.0-beta.2
+-- systemjs@0.19.24
| +-- es6-module-loader@0.17.11
| `-- when@3.7.7
+-- typescript@1.8.7
`-- zone.js@0.5.15
  `-- es6-promise@3.1.2

我解决了这个问题,似乎我在.ts中导入rxjs的方式已被弃用:

更改

import {Subject, Observable} from 'rxjs';

为:

import { Observable } from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; import { map } from 'rxjs/operator/map';

2 个答案:

答案 0 :(得分:1)

您不应在系统配置中添加rxjs特殊内容。 SystemJs默认支持node_modules模块查找。

答案 1 :(得分:0)

我也认为您不需要在System.config中添加rxjs。它会自动处理它。就像在A2 5min Quick Start中提到的那样,你只需要在你的index.html中添加<script src="node_modules/rxjs/bundles/Rx.js"></script>并将你的SystemJS指向你的主要组件,休息它就会照顾其余部分。