Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular CLI stopped working - Unexpected token {

Tags:

npm

angular

build

I used Angular CLI to create projects for a while and it was working fine. But when I tried to create a new project today I got an error when trying to serve it.

ng serve
Unexpected token {
SyntaxError: Unexpected token {
   at exports.runInThisContext (vm.js:53:16)
   at Module._compile (module.js:373:25)
   at Object.Module._extensions..js (module.js:416:10)
   at Module.load (module.js:343:32)
   at Function.Module._load (module.js:300:12)
   at Module.require (module.js:353:17)
   at require (internal/module.js:12:17)
   ...

Here is the full stack trace http://pastebin.com/71qU3G64

If I delete the node_modules directory and copy it from an old project it works, but that is not a long term solution.

like image 655
jhertz Avatar asked Feb 11 '17 11:02

jhertz


2 Answers

It is now working after

  • Updating node as suggested by Kind user
  • Updating Angular CLI https://github.com/angular/angular-cli#updating-angular-cli

For my old project to work after these changes I had to do the following (some of the steps are from the link above).

  • rmdir /s node_modules
  • rmdir /s dist
  • npm install --save-dev @angular/cli@latest
  • npm install
  • ng update
  • Update package.json as suggested here Getting error on ng serve: ERROR in Cannot read property 'listLazyRoutes' of undefined
  • npm install (again)

This update worked for most of my projects but I still have an issue with one

ng serve
  patterns.map is not a function
  TypeError: patterns.map is not a function
  at GlobCopyWebpackPlugin.apply (C:\Users\jhertz\Workspaces\eclipsekatujo\ibi\src\app\node_modules\@angular\cli\plugins\glob-copy-webpack-plugin.js:25:29)
  at Compiler.apply (C:\Users\jhertz\Workspaces\eclipsekatujo\ibi\src\app\node_modules\tapable\lib\Tapable.js:306:16)
  at webpack (C:\Users\jhertz\Workspaces\eclipse-katujo\ibi\src\app\node_modules\webpack\lib\webpack.js:32:19)
  at Class.run (C:\Users\jhertz\Workspaces\eclipse-katujo\ibi\src\app\node_modules\@angular\cli\tasks\serve.js:63:27)
  at checkExpressPort.then.then (C:\Users\jhertz\Workspaces\eclipse-katujo\ibi\src\app\node_modules\@angular\cli\commands\serve.js:84:26)
  at process._tickCallback (internal/process/next_tick.js:103:7)

The above error got solved by updating the angular-cli.json in the project folder.

== Old ==
"assets": "assets",
== New ==
"assets": ["assets"]
like image 120
jhertz Avatar answered Sep 30 '22 04:09

jhertz


Experienced the same problem but I managed to solve it by deleting the node_modules folder and the yarn.lock file. I then re-installed the packages (using yarn) and changed the node version to >=8.9.0, and it worked.

like image 23
charlchad Avatar answered Sep 30 '22 04:09

charlchad