我正在使用Angular 6。 使用ng serve&ng build一切正常,但是使用ng build --prod时,地图无法打开,并且在控制台中具有 type r不是构造函数。
使用agm方向https://github.com/explooosion/Agm-Direction/
<agm-map [latitude]="lat" [longitude]="lng" [zoom]="13">
<agm-direction [waypoints]="waypoints" [origin]="origin" [destination]="destination">
</agm-direction>
</agm-map>
this.origin = { lat: 18.544405, lng: 73.735341 };
this.destination = { lat: 18.544405, lng: 73.735341 };
this.waypoints = [
{
location: "18.532667,73.8276983"
},
{
location: "18.533654,73.8235143"
},
{
location: "18.523258, 73.762949"
}
];
答案 0 :(得分:1)
我最近偶然发现了相同的错误,原来是Ahead-of-Time (AOT) Compilation(默认用于生产部署启用的 )
一种解决方案是禁用 AOT:
ng build --prod --aot false
另一种解决方案是等到Agm-Direction
library
以下是解决此问题的更改列表:
1)通过从tsconfig.es5.json
删除以下内容来禁用FESM
"flatModuleOutFile": "agm-direction.js",
"flatModuleId": "agm-direction"
2)通过替换行(用于gulpfile.js
任务)来修改copy:build
return gulp.src([`${buildFolder}/**/*`, `!${buildFolder}/**/*.js`])
与
return gulp.src([`${buildFolder}/**/*`])