我按照以下方式启动我的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
。
似乎要么存在源地图文件,要么不应该引用它们。为什么服务器试图获取这些不存在的源映射文件?
答案 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}'
]
});
};