web-dev-qa-db-ja.com

TypeScriptエラーTS5014:位置0のJSONに予期しないトークンu

.tsを.jsにコンパイルしようとしています

以下のtsconfig.jsonがあります

{
"compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "sourceMap": true,
    "outFile": "build/test.js"
},
"exclude": [
    "node_modules"
]
}

以下は私のpackage.jsonです

{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"tsc": "^1.20150623.0",
"TypeScript": "^2.4.2"
}
}

自動生成されたtasks.jsonは以下のようになります

{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
    {
        "type": "TypeScript",
        "tsconfig": "tsconfig.json",
        "problemMatcher": [
            "$tsc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
    }
]
}

ビルドタスクを実行しようとすると、以下のエラーが発生します

Executing task: <myprojloc>\node_modules\.bin\tsc.cmd  -p "<myprojloc>\tsconfig.json" <

error TS5014: Failed to parse file '<myprojloc>/tsconfig.json/tsconfig.json': Unexpected token u in JSON at position 0.

Terminal will be reused by tasks, press any key to close it.

私は何を間違っていますか? package.jsonにバージョンを追加したことに注意してください。

10

同僚からアドバイスを得て、これから何かを試した後 link を使って、tasks.jsonを以下のように書き直すと、うまくいきました。以前にコマンドに問題があるようです

{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
    {
        "taskName": "compile",
        "type": "Shell",
        "command": "tsc -p tsconfig.json",
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": []
    }
]
}
0

依存関係として「TypeScript」を追加し忘れたときにも、このエラーが表示されることをお伝えします。

npm install TypeScript

修正する必要があります。

この依存関係isは、質問のpackage.jsonにあることに注意してください。

37
obiwanjacobi

エラーメッセージを注意深く見ると、失敗の理由がわかります。 tscを実行するために作成されたコマンドラインは、間違ったディレクトリを参照しています。 <myprojloc>/tsconfig.json/ の代わりに <myprojloc>/。エラーでtsconfig.jsonが2回繰り返されるのを見てください?

error TS5014: Failed to parse file '<myprojloc>/tsconfig.json/tsconfig.json': Unexpected token u in JSON at position 0.

ランニング npm install TypeScript --save-devはうまくいきましたが、タスクを編集し、commandを指定してtsconfig.jsonの適切なディレクトリを検索すると、問題がどのように解決されるかを確認できます。

5
Alex Hui

ファイルを保存するときに、正しく解析できない可能性のある多くの問題が発生する可能性があります。私は通常、ファイル名をtsconfig.json.backupなどに変更し、次にtsc --initを呼び出して既知の適切なファイルを生成することで、対処しないことを選択します。次に、特定の構成を新しく生成されたtsconfig.jsonファイルに転送し、必要な部分のコメントを外します。

それでもそれが続く場合は、使用しているTypeScriptバージョンの実際のバグである可能性があります。

3
Madara's Ghost

Git BashをVS Codeのデフォルトシェルとして使用しているときにこの問題に遭遇しました。デフォルトのシェルをコマンドプロンプトに切り替え、後世のためにnpm install TypeScriptを実行して、再度ビルドします。

「デフォルト」のtscビルドタスクを使用しています。

{
    "version": "2.0.0",
    "tasks": [
      {
        "type": "TypeScript",
        "tsconfig": "tsconfig.json",
        "problemMatcher": ["$tsc"],
        "group": {
          "kind": "build",
          "isDefault": true
        }
      }
    ]
 }
1
StCleezy