npm start启动React项目报SyntaxError: missing ) after argument list错误如何解决
错误产生原因
node_modules/.bin/react-scripts是类Unix环境使用的Shell脚本,并非可被Node.js直接执行的JavaScript文件。你在scripts配置中用node命令调用该Shell脚本,Node.js运行时会将Shell语法当作JS代码解析,自然触发语法报错。- 该问题多出现在Windows环境:
node_modules/.bin目录下对应react-scripts有两个可执行文件,无后缀的是Shell脚本,.cmd后缀的才是Windows原生支持的批处理脚本,直接调用无后缀版本并传入node执行就会触发上述报错。
修复方案
- 最通用的跨平台修复方式:直接删除
start命令中的node前缀和完整路径,npm/yarn执行scripts脚本时会自动将node_modules/.bin目录加入临时环境变量PATH,可直接调用依赖包的命令:
"scripts": { "start": "react-scripts start" }
- 如果你需要指定完整路径调用,Windows环境可替换为
.cmd后缀的版本:
"scripts": { "start": "node_modules/.bin/react-scripts.cmd start" }
- 若修改后仍有异常,可删除项目下的
node_modules目录、package-lock.json或yarn.lock文件,重新执行npm install安装依赖即可。
内容的提问来源于stack exchange,提问作者Maureen Moore
相关产品推荐
相关产品推荐

