【问题标题】:Setting environment variables package.json in Windows 10在 Windows 10 中设置环境变量 package.json
【发布时间】:2017-04-09 23:04:27
【问题描述】:

UPDATE:正如问题中所解释的,这不是重复的,因为我已经尝试在环境变量并没有解决问题。


我正在学习节点并输入书中的示例。第一个例子展示了“http”模块是如何工作的,以及如何创建一个服务器来监听请求。在某些时候,本书要求将以下行添加到 package.json 文件的脚本部分:

“服务器”:“SERVERPORT=3002 节点 ./fiboserver”

当我尝试使用 npm run server 运行示例时,我收到以下错误消息:

'SERVERPORT' 未被识别为内部或外部命令

我一直没能在网上找到任何答案,我发现我最多可以试试:

"server": "set SERVERPORT=3002 node ./fiboserver"

但这也无济于事,唯一的区别是我再次收到命令提示符而不是错误消息,因此显然服务器永远不会运行。

我相信作者使用的是 Linux 机器,我使用的是 Windows 10 笔记本电脑。

我真的致力于学习 Node,我的工作是在 Windows 环境中。我相信在 package.json 上设置环境变量很重要,所以我真的可以使用一些帮助来解决这个问题。

谢谢。

【问题讨论】:

  • 也许你应该用 && 符号分隔命令。 set SERVERPORT=3002 && node ./fiboserver
  • @Ibrahim - 谢谢。那行得通。您能否添加一个答案,以便我将其设置为正确的解决方案?
  • @Simon - 嗨。我不认为这与您提出的那个重复,因为答案只是在变量之前使用“set”并且当我尝试它不起作用时。
  • @SergioRomero 嗨,我不同意。如果你看一下cmets,就会给出答案。

标签: node.js


【解决方案1】:

我已经通过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 也可以正常工作:

【讨论】:

    【解决方案2】:

    使用cross-env使其跨平台:

    "server": "cross-env SERVERPORT=3002 node ./fiboserver"
    

    【讨论】:

      【解决方案3】:

      在 Windows 上,您必须将设置变量的命令与使用 && 运算符运行服务器的命令分开。 话虽如此,你必须这样做:

      "server": "set SERVERPORT=3002 && node ./fiboserver"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-21
        • 2016-03-10
        • 2020-09-01
        • 1970-01-01
        相关资源
        最近更新 更多