首页 > 解决方案 > Angular 6 - JSON 中位置 0 的意外标记

问题描述

我的 Angular 5 项目运行正常,在将其更新到版本 6 后,ng build由于以下原因停止使用:

./src/app/assets/i18/en.json 中的错误模块解析失败:位置 0 处的 JSON 中出现意外标记您可能需要适当的加载程序来处理此文件类型。

这是我的json文件:

{
  "app": {
    "Welcome": "Welcome",
    "New": "New"
  },
  "mainMenu": {
    "Home": "Home",
    "Logout": "Logout"
  },
  "pageHeader": {
    "About": "About",
    "Settings": "Settings"
  }
}

网络上的大多数解决方案都在谈论CopyWebpackPlugin,但该项目不使用任何 Webpack 配置文件。

然后,按照此链接,我尝试将 json 作为数组:

{
    "menu":[
        "app": {
            "Welcome": "Welcome",
            "New": "New"
        },
        "mainMenu": {
            "Home": "Home",
            "Logout": "Logout"
        },
        "pageHeader": {
            "About": "About",
            "Settings": "Settings"
        }
    ]
}

但是得到了以下错误,尽管文件包含 16 行。

意外令牌:在 JSON 中的位置 24

任何想法 ?

标签: jsonangularwebpack

解决方案


受@AndrewJuniorHoward 启发,发现在升级过程中,所有 json 文件都被编码为 UTF-8-BOM 而不是 UTF-8,这就是 Angular 在构建期间无法加载它们的原因。在 Visual Studio 代码中,我只是创建了空文件,将旧 json 文件的内容粘贴到其中,然后覆盖它们,一切正常。


推荐阅读