Ошибка выдачи угловой сборки (JSON.parse(stripJsonComments(content)))

Я использую angular nx сnesjs. Когда проект клонируется и выполняется команда пряжи, он успешно строится, но даже когда я устанавливаю любой пакет и компилирую проект. выдает ошибку:

**D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\utils\fileutils.js:44
    return JSON.parse(stripJsonComments(content));
                ^
SyntaxError: Unexpected token } in JSON at position 562
    at JSON.parse (<anonymous>)
    at Object.parseJsonWithComments (D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\utils\fileutils.js:44:17)
    at new TargetProjectLocator (D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\core\target-project-locator.js:22:46)
    at buildExplicitTypeScriptDependencies (D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\core\project-graph\build-dependencies\explicit-project-dependencies.js:8:34)
    at D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\core\project-graph\project-graph.js:60:41
    at Array.forEach (<anonymous>)
    at buildProjectGraph (D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\core\project-graph\project-graph.js:60:26)
    at Object.createProjectGraph (D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\core\project-graph\project-graph.js:40:30)
    at Object.<anonymous> (D:\projectNAme\nrwl\node_modules\@nrwl\workspace\src\command-line\run-one.js:16:46)
    at Generator.next (<anonymous>)
[21:31:39] 'deployLocalAPI' errored after 820 ms
[21:31:39] Error: Command failed: cd nrwl && nx serve api
    at checkExecSyncError (node:child_process:636:11)
    at Object.execSync (node:child_process:672:15)
    at Object.exec (D:\projectNAme\/gulpfile.babel.js:36:8)
    at D:\projectNAme\_config\gulp\tasks\deploy\apps\api\/deployLocal.js:41:10
    at deployLocalAPI (D:\projectNAme\node_modules\undertaker\lib\set-task.js:13:15)
    at bound (node:domain:413:15)
    at runBound (node:domain:424:12)
    at asyncRunner (D:\projectNAme\node_modules\async-done\index.js:55:18)
    at processTicksAndRejections (node:internal/process/task_queues:75:11)**

и следующие версии, которые я использую:

"@angular-devkit/build-angular": "~0.1100.1",
"@angular/cli": "~11.0.0",
"@angular/compiler-cli": "^11.0.0",
"@angular/language-service": "^11.0.0",
"@nestjs/schematics": "^7.0.0",
"@nestjs/testing": "^7.0.0",
"@nrwl/cli": "11.0.2",
"@nrwl/cypress": "11.0.2",
"@nrwl/eslint-plugin-nx": "11.0.2",
"@nrwl/jest": "11.0.2",
"@nrwl/nest": "11.0.2",
"@nrwl/node": "11.0.2",
"@nrwl/tao": "11.0.2",
"@nrwl/workspace": "11.0.2",
"@types/jest": "26.0.8",
"@types/node": "12.12.38",
"@typescript-eslint/eslint-plugin": "4.3.0",
"@typescript-eslint/parser": "4.3.0",
"codelyzer": "^6.0.0",
"cypress": "^5.5.0",
"dotenv": "6.2.0",
"eslint": "7.10.0",
"eslint-config-prettier": "6.0.0",
"jest": "26.2.2",
"jest-preset-angular": "8.3.1",
"prettier": "2.1.2",
"ts-jest": "26.4.0",
"ts-node": "~7.0.0",
"tslint": "~6.0.0",
"typescript": "~4.0.3"

person Shaharyar Jafri    schedule 04.01.2021    source источник


Ответы (1)


Эта проблема возникает, когда мы случайно забываем запятую в конце объекта JSON внутри файла .json в вашем проекте. Обычно это происходит после редактирования tsconfig.json.

Из-за этой одинокой и ненужной запятой синтаксический анализатор JSON не может найти и понять закрывающие фигурные скобки, потому что он ожидает другого свойства JSON, поэтому ошибка:

Неожиданный токен } в JSON

Это пример, который должен привести к такой ошибке для tsconfig.json (например, в проектах Angular 11 с VSCode):

"angularCompilerOptions": {
    "strictTemplates": true,
    "fullTemplateTypeCheck": true,<----- this last comma might be the culprit
  },

Решение: проверьте целостность структуры ваших недавно отредактированных файлов json на наличие одиноких запятых или потерянных фигурных скобок. Если это действительно одинокая запятая, достаточно просто удалить ее и сохранить файл.

person Bruno Ton    schedule 22.03.2021