更新 :正如问题所述,这不是重复,因为我已经尝试添加设置环境变量之前的关键字并没有解决问题。
我正在学习节点并从书中输入示例。第一个示例涉及显示“http”模块如何工作以及如何创建服务器来侦听请求。在某些时候,本书要求将以下行添加到package.json文件的scripts部分:
“server”:“SERVERPORT = 3002 node ./fiboserver”
当我尝试使用 npm运行服务器运行示例时,出现以下错误消息:
'SERVERPORT'未被识别为内部或外部命令
我在互联网上找不到任何答案,最多我发现我可以尝试:
“server”:“设置SERVERPORT = 3002 node ./fiboserver”
但这也没有帮助,唯一的区别是,我没有再次收到命令提示,而是显示服务器永远不会运行。
我相信作者使用的是Linux机器,我使用的是Windows 10笔记本电脑。
我真的致力于学习Node,我的工作是在Windows环境中。我相信在package.json上设置环境变量很重要,所以我可以真正使用一些帮助来解决这个问题。
谢谢。
答案 0 :(得分:8)
使用cross-env
:
"server": "cross-env SERVERPORT=3002 node ./fiboserver"
答案 1 :(得分:4)
在Windows上,您必须将设置变量的命令与使用&&
运算符运行服务器的命令分开。
话虽这么说,你必须做这样的事情:
"server": "set SERVERPORT=3002 && node ./fiboserver"
答案 2 :(得分:2)
我经历过the same problem,并使用了以下方法之一。
如果我运行(不使用npm包装器脚本)
HOST=0.0.0.0 PORT=8000 ./node_modules/.bin/react-scripts start
工作正常。正如昆汀所说,
那一定与npm的炮弹方式有关
要解决此问题,我转到package.json并将“开始”脚本更改为
"start": "./node_modules/.bin/react-scripts start",
然后npm start
正常工作。
使用cross-env软件包。
为此,请使用以下命令进行安装
npm i cross-env
然后转到package.json并将其更改为
"start": "cross-env ./node_modules/.bin/react-scripts start",
然后运行npm start
也可以正常工作: