当我运行“npm run start”时,为啥 npm react-scripts 会产生语法错误? [复制]

Posted

技术标签:

【中文标题】当我运行“npm run start”时,为啥 npm react-scripts 会产生语法错误? [复制]【英文标题】:Why is npm react-scripts producing a syntax error when I run `npm run start`? [duplicate]当我运行“npm run start”时,为什么 npm react-scripts 会产生语法错误? [复制] 【发布时间】:2019-07-04 12:03:55 【问题描述】:

所以几个月来,我一直在开发一个完整的 React 应用程序。出于某种原因,当我尝试在命令行上运行npm run start 时,似乎不知从何而来,它产生了以下错误;

// npm run start

> pair@0.1.0 start /Users/eden/Documents/GitHub/Pair./pair
> react-scripts start

/Users/eden/Documents/GitHub/Pair./pair/node_modules/react-dev-utils/WebpackDevServerUtils.js:166
  compiler.hooks.done.tap('done', async stats => 
                                  ^^^^^

SyntaxError: missing ) after argument list
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/eden/Documents/GitHub/Pair./pair/node_modules/react-scripts/scripts/start.js:45:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pair@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the pair@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/eden/.npm/_logs/2019-02-11T01_36_36_244Z-debug.log

我尝试了以下方法;

卸载/重新安装节点 卸载/重新安装 npm 确保 node 和 npm 是版本 6 或更高版本 删除node_modulespackage-lock.json并重新运行npm-i 卸载/重新安装 react-scripts 降级反应脚本 正在运行npm install --save react react-dom react-scripts 卸载/重新安装 react-dev-utils

我什至尝试将GitHub homepage of react-dev-utils 中WebpackDevServerUtils.js 的内容复制/粘贴到我的本地node_modules/react-dev-utils/WebpackDevServerUtils.js 以解决语法错误。

我不知道为什么会这样。以下是本次运行的日志;

0 info it worked if it ends with ok
1 verbose cli [ '/Users/eden/.nvm/versions/node/v6.11.2/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'run',
1 verbose cli   'start' ]
2 info using npm@6.4.1
3 info using node@v6.11.2
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle pair@0.1.0~prestart: pair@0.1.0
6 info lifecycle pair@0.1.0~start: pair@0.1.0
7 verbose lifecycle pair@0.1.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle pair@0.1.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Users/eden/Documents/GitHub/Pair./pair/node_modules/.bin:/Users/eden/.nvm/versions/node/v6.11.2/bin:/Applications/Postgres.app/Contents/Versions/latest/bin:/usr/local:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/Postgres.app/Contents/Versions/latest/bin:/Users/eden/.rvm/bin
9 verbose lifecycle pair@0.1.0~start: CWD: /Users/eden/Documents/GitHub/Pair./pair
10 silly lifecycle pair@0.1.0~start: Args: [ '-c', 'react-scripts start' ]
11 silly lifecycle pair@0.1.0~start: Returned: code: 1  signal: null
12 info lifecycle pair@0.1.0~start: Failed to exec start script
13 verbose stack Error: pair@0.1.0 start: `react-scripts start`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 verbose stack     at emitTwo (events.js:106:13)
13 verbose stack     at EventEmitter.emit (events.js:191:7)
13 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at emitTwo (events.js:106:13)
13 verbose stack     at ChildProcess.emit (events.js:191:7)
13 verbose stack     at maybeClose (internal/child_process.js:891:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
14 verbose pkgid pair@0.1.0
15 verbose cwd /Users/eden/Documents/GitHub/Pair./pair
16 verbose Darwin 18.2.0
17 verbose argv "/Users/eden/.nvm/versions/node/v6.11.2/bin/node" "/usr/local/bin/npm" "run" "start"
18 verbose node v6.11.2
19 verbose npm  v6.4.1
20 error code ELIFECYCLE
21 error errno 1
22 error pair@0.1.0 start: `react-scripts start`
22 error Exit status 1
23 error Failed at the pair@0.1.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

我查看了 WebpackDevServerUtils.js 的第 166 行,并使用 ESLint 来识别语法错误,但它找不到任何东西。

因此,我的问题是:如何解决这个晦涩难懂的错误?

【问题讨论】:

对于它的价值,那行代码似乎已在 3 天前提交。从那以后我没有升级 create-react-app,但您可能想尝试暂时将版本降级到 2.1.3 以查看是否可以解决问题。 您使用的是哪个版本的 Node.js? 我的node版本是v6.11.2 【参考方案1】:

错误似乎是异步的,您使用的是不支持异步/等待的节点 6。更新到支持它的最新版本的节点(7.6),你应该很好。

【讨论】:

是的,你是对的!事实证明 node 和 nom 没有正确同步——我的服务器和前端有不同的版本。我跑了npm cache verify,全局安装了 NPM 并升级了 NPM 和节点以确保它 > v7.0.0

以上是关于当我运行“npm run start”时,为啥 npm react-scripts 会产生语法错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Vue报错:npm run start npm ERR! missing script: start

我试图运行命令“npm run start”,它在 react js 中显示了这个错误

webpack 4.X npm run start 鎶ラ敊

如何使用代码 0 退出“npm run start”?

npm install 成功,但 npm run start 无法找到 rimraf 和 react-scripts,尽管它们已安装

create-react-app npm run start 在生产模式下。也许不可能?