为什么 Angular 服务器试图访问不存在的供应商源映射文件?

Why is the Angular server trying to access nonexistent vendor source map files?

我正在像这样启动我的 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。我没有 any 供应商映射文件,尽管我的供应商文件底部确实有源映射注释,例如//# sourceMappingURL=Reflect.js.map.

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

根据 this issue I opened 上的回复,"These were left out intentionally (by me) because they slowed down the dev rebuilds."

我可以通过将 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}'
    ]
  });
};