Nodejs npm scripts fail with “SyntaxError: Unexpected token {”

雨燕双飞 提交于 2019-12-23 12:35:15

问题


I've just imported my Reactjs project to a new machine on Ubuntu and installed most dependencies with npm install successfully bar the following:

npm WARN optional Skipping failed optional dependency /react-scripts/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.17
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.1.2

Trying to run the project with npm start fails with:

> booking-frontend@0.1.0 start /root/17-visit-booker-frontend
> react-scripts start


/root/17-visit-booker-frontend/node_modules/react-scripts/scripts/start.js:33
const {
      ^

SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3

npm ERR! Linux 4.4.0-81-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! booking-frontend@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the booking-frontend@0.1.0 start script 'react-scripts start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the booking-frontend package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     react-scripts start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs booking-frontend
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls booking-frontend
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /root/17-visit-booker-frontend/npm-debug.log

Attempting to run any npm script including npm run build all fails with the exact same error referencing the same lines in each file in the SyntaxError:

SyntaxError: Unexpected token {
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3

Running the same scripts on my original machine, a Mac, succeed.

I've tried re-installing node/npm which do not fix the issue. Is the supposedly optional dependency causing this to fail?

Any help is appreciated.


回答1:


You're using node.js v4 which does not by default support destructuring syntax (the const {field1, field2, ....} = object) that it is failing on.

You have two options:

  1. Install a newer version of Node.js
  2. Run node with the harmony flags that will enable this feature in version 4.x.


来源:https://stackoverflow.com/questions/45108189/nodejs-npm-scripts-fail-with-syntaxerror-unexpected-token

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!