Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular &引用;ng build—prod“;删除代码行,如果使用console.log(对象),则不删除_Angular_Typescript_Webpack_Angular8 - Fatal编程技术网

Angular &引用;ng build—prod“;删除代码行,如果使用console.log(对象),则不删除

Angular &引用;ng build—prod“;删除代码行,如果使用console.log(对象),则不删除,angular,typescript,webpack,angular8,Angular,Typescript,Webpack,Angular8,当我使用命令ngbuild--prod打包Angular 8项目时,我遇到了这个问题。 下面的代码行显示,gisModule.Map=args[0]编译后不归代码,几乎被删除。我的应用程序在以下阶段给出了错误。但是当我在这行代码之后编写console.log(gisModule.Map)时,一切都正常。原因是什么?有没有更有效的解决办法 代码的第一个版本 import { gisModule } from 'gisModule'; ... ... loadModules(["esri/map"]

当我使用命令
ngbuild--prod
打包Angular 8项目时,我遇到了这个问题。 下面的代码行显示,
gisModule.Map=args[0]编译后不归代码,几乎被删除。我的应用程序在以下阶段给出了错误。但是当我在这行代码之后编写
console.log(gisModule.Map)
时,一切都正常。原因是什么?有没有更有效的解决办法

代码的第一个版本

import { gisModule } from 'gisModule';
...
...
loadModules(["esri/map"]).then(function (args: any) {

    gisModule.Map = args[0];

    platformBrowserDynamic().bootstrapModule(AppModule)
        .catch(err => console.error(err));
})
代码编译后

ze.then(() => {
    Object(o.loadModules)(["esri/map"]).then(function (e) {
        He().bootstrapModuleFactory(Be).catch(e => console.error(e))
    })
}
仅添加了console.log

loadModules(["esri/map"]).then(function (args: any) {
    gisModule.Map = args[0];
    //Just adding this line,is work well.
    console.log(gisModule.Map);
    platformBrowserDynamic().bootstrapModule(AppModule)
        .catch(err => console.error(err));
})
添加console.log输出为

Ue.then(() => {
Object(i.loadModules)(["esri/map"]).then(function (e) {
        s.Map = e[0],
        console.log(s.Map),
        Fe().bootstrapModuleFactory(ze).catch(e => console.error(e))
 })
}
我的gisModule.ts在这里

export class gisModule{ 
    static set Map(value: any) {
        _my_global_variable = value;
    }
}

您应该将此报告为一个bug,没有什么可以帮助您解决它。我的假设是,编译过程中执行的树划检测到您的gisModule从未使用过,因此被删除。但是添加console.log行时,它会被使用而不会被删除。在网上找到的exmaples中,esri/map似乎加载在组件中,而不是加载到main.tsa中。正如您所说,没有使用直接来自gisModule的内容。“gisModule.map”是一个访问器。内容是这样的
静态集合映射(value:any){{u my_global_variable=value;}
谢谢你,我现在明白了@Gérômegrignon您应该报告这是一个bug,没有什么可以帮助您解决它。我的假设是编译过程中执行的树划检测到您的gisModule从未使用过,因此被删除。但是添加console.log行时,它会被使用而不会被删除。在网上找到的exmaples中,esri/map似乎加载在组件中,而不是加载到main.tsa中。正如您所说,没有使用直接来自gisModule的内容。“gisModule.map”是一个访问器。内容是这样的
静态集合映射(value:any){{u my_global_variable=value;}
谢谢你,我现在明白了@GérômeGrignon