【问题标题】:Angular ng build command bundles static JSON file to main TS file. How to keep it in asset folder without bundling it in main TS file?Angular ng build 命令将静态 JSON 文件捆绑到主 TS 文件。如何将其保存在资产文件夹中而不将其捆绑在主 TS 文件中?
【发布时间】:2021-01-17 06:35:36
【问题描述】:

我在资产文件夹中保存了一个 JSON 文件,并将其导入到我的 .ts 组件中。并且每当我使用 ng build —prod 构建项目时,JSON 文件将捆绑在 main..ts 文件中,如果我更改 JSON 文件中的任何内容,它将不会原样反映在 Angular 应用程序中从 main..ts 文件中读取数据。但这不符合我的要求。我需要的是,静态 JSON 文件应该在资产文件夹本身中,当我们访问 Angular 应用程序时,它应该从保存在资产文件夹中的 JSON 文件中读取 JSON 数据

【问题讨论】:

    标签: angular


    【解决方案1】:

    我认为您应该改为遵循此策略。您可以使用 httpclient 并从 JSON 文件中调用数据。您可以创建一个单独的服务来读取 JSON 文件,也可以在任何其他服务中获取此方法。

    import { HttpClient } from "@angular/common/http";
    

    在构造函数中注入 Http

    constructor(private httpClient: HttpClient){}
    
    public getJson() {
    
        this.httpClient.get('assets/data.json').subscribe(data => {
                // do anything thing with data 
                console.log(data);
        })
    }
    

    我认为,当您更改 JSON 文件中的任何内容时,您无需再次创建构建。

    【讨论】:

    • 是的,这是一个好方法。但是,我通过使用直接导入而不是使用订阅静态 JSON 内容来检查可能性。有没有办法做到这一点或订阅是唯一可以遵循的方法?
    • 一旦你在你的组件文件中导入它,它就会成为依赖,并在你构建项目时添加到主文件中。正如您所提到的,您不需要使 json 成为 ts 文件的一部分。目前,我只想到这种方法。
    • 您找到其他解决方案了吗?
    • 已关注http服务,已接受答复,谢谢,迟迟不接受答复。
    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 2016-10-17
    • 2018-08-29
    • 2019-07-02
    • 2019-01-24
    • 2015-07-19
    相关资源
    最近更新 更多