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

时间:2016-05-10 12:28:54

标签: angular angular-cli

我按照以下方式启动我的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

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

1 个答案:

答案 0 :(得分:0)

根据对this issue I opened的回应,“这些被故意遗漏(由我),因为他们放慢了开发重建的速度。”

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