I updated angular from 9 to 15 and now it seems I have issues running ng s with source Map enabled.
My Error:
✔ Browser application bundle generation complete.
<e> [webpack-dev-middleware] HookWebpackError: Unexpected token | in JSON at position 3
<e> at makeWebpackError ([...]\node_modules\webpack\lib\HookWebpackError.js:48:9)
<e> at [...]\node_modules\webpack\lib\Compilation.js:3060:12
<e> at eval (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:61:1)
<e> at fn ([...]\node_modules\webpack\lib\Compilation.js:480:17)
<e> at _next1 (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:58:1)
<e> at eval (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:77:1)
<e> at processTicksAndRejections (internal/process/task_queues.js:95:5)
<e> -- inner error --
<e> SyntaxError: Unexpected token | in JSON at position 3
<e> at JSON.parse (<anonymous>)
<e> at [...]\node_modules\@angular-devkit\build-angular\src\webpack\plugins\devtools-ignore-plugin.js:42:38
<e> at fn ([...]\node_modules\webpack\lib\Compilation.js:478:10)
<e> at _next1 (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:58:1)
<e> at eval (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:77:1)
<e> at processTicksAndRejections (internal/process/task_queues.js:95:5)
<e> caused by plugins in Compilation.hooks.processAssets
<e> SyntaxError: Unexpected token | in JSON at position 3
<e> at JSON.parse (<anonymous>)
<e> at [...]\node_modules\@angular-devkit\build-angular\src\webpack\plugins\devtools-ignore-plugin.js:42:38
<e> at fn ([...]\node_modules\webpack\lib\Compilation.js:478:10)
<e> at _next1 (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:58:1)
<e> at eval (eval at create ([...]\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:77:1)
<e> at processTicksAndRejections (internal/process/task_queues.js:95:5)
I tried to add a development configuration in my angular.json
"projects": {
"myTrain": {
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/myTrain",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"src/styles.scss"
],
"scripts": [],
"vendorChunk": true,
"extractLicenses": false,
"buildOptimizer": false,
"optimization": false,
"namedChunks": true
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
},
"development": {
"sourceMap": {
"scripts": true,
"styles": false,
"hidden": true,
"vendor": true
},
"buildOptimizer": false,
"optimization": false,
"extractLicenses": false,
"namedChunks": true,
"vendorChunk": true,
}
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myTrain:build"
},
"configurations": {
"production": {
"browserTarget": "myTrain:build:production"
}
}
}
}
}
}
my dev dependencies:
"devDependencies": {
"@angular-devkit/build-angular": "^15.0.4",
"@angular/cli": "^15.0.4",
"@angular/compiler-cli": "^15.0.4",
"@angular/language-service": "^15.0.4",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^6.0.2",
"jasmine-core": "^4.5.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~6.4.1",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"protractor": "~7.0.0",
"ts-node": "~7.0.0",
"tslint": "~6.1.0",
"typescript": "~4.8.4"
}
node: 14.20.0
To ask this question, I need to provide more details, but I don't know what I could say to clarify the question further. I'm running an angular 15 app which was updated from angular 9 yesterday. I --force updated my way to 15, then updated dependencies via npm i and npm outdated. I know, Angular 15 is not using sourceMaps by default, but my problem is not to enable it, the system just isn't serving (ng s) with them enabled. Any questions welcome, I'm kinda lost here and google didn't help me as most related questions were telling me to use a development config.
I found the answer here: Angular 14 Unexpected token / in JSON at position 0 at makeWebpackError
Unfortunately I can't provide any more valuable information except:
This is a cheesy son of a bitch, the trace doesn't give you anything.
ng serve -- watchfor me, a 2 year old unused file in the asset folder was causing the issue. it was a .map file and as all assets are loaded via http (and therefore json as default transfer), a pipe in the .map wasn't convertable.
Edit: I also had the problem that the angular.json wasn't correct after trying to fix it by hand. This I solved with point 3 above, I still don't fully understand the difference, but here's the working angular.json stub (more for me than for anyone else, sorry):
so i assume: