TypeScript 2.9 resolveJsonModule在转译的文件上引发异常

时间:2018-06-20 21:35:11

标签: json typescript

我正在使用TypeScript 2.9的resolveJsonModule功能,只要我使用ts-node执行应用程序,该功能就可以正常工作。当我将源文件转换为我的outdir时,它也会将JSON文件复制到outdir中,并把指向类型文件的源映射链接放入其中,如下所示:

[
    {
        "scid": 59000000
    },
    {
        "scid": 59000000
    }

]
//# sourceMappingURL=roles.json.map

当我运行我编译的javascript文件时,它们试图解析这些JSON文件,并且显然是由于指向注释行的意外令牌而抛出了SyntaxError:

internal/modules/cjs/loader.js:724
    throw err;
    ^

SyntaxError: C:\Users\user\Documents\project\lib\assets\filename.json: Unexpected token / in JSON at position 22186
    at JSON.parse (<anonymous>)

我的项目根目录在编译后看起来像这样

  • 资产
  • lib
    • 资产
    • json-file.d.ts
    • json-file.json
    • src
      • 我所有已转译的js文件及其d.ts文件
  • src
    • 我所有的打字稿源文件 tsconfig.json

我的问题:

我该如何使用TypeScript 2.9的resolveJsonModule功能,以便转译的javascript能够解析我的JSON文件(由于注释行,当前无法使用)?

修改:

我已经尝试将资产文件夹放到tsconfig.json的exclude属性中,该属性不起作用。 tsconfig.json的完整内容在这里:https://ghostbin.com/paste/sdkcj

1 个答案:

答案 0 :(得分:1)

我发现这是TypeScript 2.9.2修复的错误。版本2.9.0和2.9.1添加了源映射到已编译的JSON文件。