0

我正在像这样启动我的 Angular CLI 服务器:

ng serve --proxy http://localhost:3000

(我想代理所有 ajax 请求,localhost:3000因为我有一个 Rails 服务器在那里运行。)

当我加载页面时,它可以工作,但我的日志输出如下所示:

GET /vendor/reflect-metadata/Reflect.js.map 404 507.868 ms - -
GET /vendor/@angular/platform-browser-dynamic/index.js.map 404 209.116 ms - -
GET /vendor/@angular/platform-browser-dynamic/platform_browser_dynamic.js.map 404 341.069 ms - -
GET /vendor/@angular/compiler/index.js.map 404 436.576 ms - -
GET /vendor/@angular/compiler/compiler.js.map 404 563.992 ms - -
GET /vendor/@angular/compiler/src/schema/element_schema_registry.js.map 404 654.152 ms - -
GET /vendor/@angular/compiler/src/compiler.js.map 404 747.154 ms - -
GET /vendor/@angular/core/index.js.map 404 633.265 ms - -
GET /vendor/@angular/core/src/metadata.js.map 404 589.541 ms - -
GET /vendor/@angular/core/src/metadata/di.js.map 404 578.612 ms - -
GET /api/cars.json 304 460.917 ms - -
GET /vendor/@angular/core/src/facade/lang.js.map 404 465.870 ms - -
GET /vendor/@angular/core/src/di/metadata.js.map 404 454.124 ms - -
GET /vendor/@angular/core/src/di/forward_ref.js.map 404 455.020 ms - -

这个请求是合法的:

GET /api/cars.json 304 460.917 ms - -

这是我加载应用程序所需数据的 ajax 请求。但所有其他请求都有些神秘。当我在ng serve没有代理标志的情况下运行时,我没有收到任何供应商源映射文件请求。

Angular CLI 为/dist. 我确实有,例如/dist/vendor/reflect-metadata/Reflect.js文件存在,只是没有/dist/vendor/reflect-metadata/Reflect.js.map。我没有任何供应商映射文件,尽管我的供应商文件在底部有源映射注释,例如//# sourceMappingURL=Reflect.js.map.

似乎源映射文件应该存在或不应该被引用。为什么服务器试图获取这些不存在的源映射文件?

4

1 回答 1

0

根据我打开的关于这个问题的回复,“这些是我故意遗漏的,因为它们减慢了开发重建的速度。”

我可以通过将我的更改angular-cli-build.js为这个来解决问题:

/* global require, module */

var Angular2App = require('angular-cli/lib/broccoli/angular2-app');

module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      'systemjs/dist/system-polyfills.js',
      'systemjs/dist/system.src.js',
      'zone.js/dist/*.{js,js.map}',
      'es6-shim/es6-shim.js',
      'reflect-metadata/*.{js,js.map}',
      'rxjs/**/*.{js,js.map}',
      '@angular/**/*.{js,js.map}'
    ]
  });
};
于 2016-05-13T12:02:08.723 回答