SystemJS 未找到 RxJS 根目录
RxJS root directory Not Found by SystemJS
SystemJS 似乎可以毫无问题地加载 rxjs 模块,但会在 rxjs 目录本身上抛出 404 Not Found。所有模块都是最新版本,这似乎只是 Windows 上的问题,它适用于 osx。
GET 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".
<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';
您不应在系统配置中添加 rxjs
特殊内容。 SystemJs 默认支持 node_modules
模块查找。
我也认为您不需要在 System.config 中添加 rxjs。它会自动处理它。就像在 A2 5min Quick Start 中提到的那样,您只需将 <script src="node_modules/rxjs/bundles/Rx.js"></script>
添加到 index.html 并将您的 SystemJS 指向您的主要组件,剩下的就交给它了。
SystemJS 似乎可以毫无问题地加载 rxjs 模块,但会在 rxjs 目录本身上抛出 404 Not Found。所有模块都是最新版本,这似乎只是 Windows 上的问题,它适用于 osx。
GET 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".
<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';
您不应在系统配置中添加 rxjs
特殊内容。 SystemJs 默认支持 node_modules
模块查找。
我也认为您不需要在 System.config 中添加 rxjs。它会自动处理它。就像在 A2 5min Quick Start 中提到的那样,您只需将 <script src="node_modules/rxjs/bundles/Rx.js"></script>
添加到 index.html 并将您的 SystemJS 指向您的主要组件,剩下的就交给它了。