【问题标题】:How npm start runs a server on port 8000npm start 如何在 8000 端口上运行服务器
【发布时间】:2014-09-05 04:18:18
【问题描述】:

我最近使用来自 github 的 angular-seed 文件夹进行 Angular 应用程序开发。在之前的一些 angularjs 教程中,angular-seed 文件夹中有一个脚本文件夹和一个 server.js 文件,其中包含运行节点服务器的所有配置。那么 npm 现在是如何开始运行一个节点服务器的,那个节点服务器的所有配置在哪里呢?

【问题讨论】:

  • 它在package.json 文件中。见:github.com/angular/angular-seed/blob/master/package.json
  • 我来这里是为了寻找一个非角度的解决方案(Next.js,它基本上是 React),并在this answer below 中找到了它的解决方案。使用 Next.js,至少对我来说,package.json 文件中没有定义端口; npm run dev -- --port ####让我指定端口。

标签: node.js angularjs


【解决方案1】:

如果你会看package.json文件。

你会看到这样的东西

 "start": "http-server -a localhost -p 8000"

这告诉在端口8000上的localhost地址开始一个http-server

http-server 是一个节点模块。

更新:- 包括@Usman 的评论,理想情况下它应该出现在您的package.json 中,但如果它不存在,您可以将其包含在scripts 部分中。

【讨论】:

  • 我在 package.json 中找不到这个,但是在“脚本”下添加这个:{} 部分对我有用。
  • @Usman 理想情况下,它应该在您的package.json 中,但如果没有,您可以随时添加它。更新了答案,谢谢指点。
  • 你只是启动了一些 http 服务器,而不是 react-scripts。 PORT=3001 react-scripts start 解决问题
  • 我认为在较新版本的 npm 中它位于“launch.json”中。
【解决方案2】:

我们有一个 react 应用程序,我们的开发机器是 mac 和 pc。启动命令不适用于 PC,所以我们是这样解决的:

"start": "PORT=3001 react-scripts start",
"start-pc": "set PORT=3001&& react-scripts start",

在我的 Mac 上:

npm start

在我的电脑上:

 npm run start-pc

【讨论】:

  • 这真的拯救了我的一天!我正在寻找与 Express 的 3000 不同的端口上的正确启动节点。非常感谢!。顺便说一句,启动命令确实可以在 PC 上运行。在我的配置中看起来像这样"start": "set PORT=3001 && node ./bin/www"
  • 是的,我打错了。 Start 确实可以在 PC 上运行,但设置端口的语法与 Mac/Linux 不同。这就是为什么我有 2 个“开始”命令。一个是 mac 的“start”,一个是我的电脑的“start-pc”。
【解决方案3】:

您可以通过在 Windows 上运行以下命令来更改控制台中的端口:

SET PORT=8000

对于 MacLinuxWindows WSL,请使用以下命令:

export PORT=8000

export 为当前 shell 和所有可能使用它的子进程(如 npm)设置环境变量。

如果您希望仅为 npm 进程设置环境变量,请在命令前面加上这样的环境变量(在 MacLinux 和 Windows WSL):

PORT=8000 npm run start

【讨论】:

  • 这对于临时测试来说要简单得多。谢谢!
  • 当我已经在“默认”端口上运行其他项目时,我只是将它指定为启动命令的一部分。 PORT=<port #> npm start
【解决方案4】:

更改端口

npm start --port 8000

【讨论】:

  • 问题是从 8000 端口开始...可能是 9000 的拼写错误?
  • 是的,它就像 > ng serve "--port" "8000"。运行良好。
  • 为什么要多出两个破折号?
  • @gfels,我不知道。但是我尝试不使用两个额外的破折号,但没有成功。
  • 即使指定端口 8000 ..它仍在寻找 3000 $ npm start -port 8000 > react-basics-v1@0.1.0 start F:\React\react-basics-v1 > react-scripts start "8000" Something is already running on port 3000.
【解决方案5】:

要在所需端口中正确启动端口,请使用:

npm start -- --port 8000

【讨论】:

  • 这正是我来这里寻找的。我正在使用 Next.js (React),现在可以在给定端口上运行开发服务器; npm run dev -- --port 8000 工作就像一个魅力。
  • Something is already running on port 3000 也不起作用
  • 这对我不起作用。模块在 3000 自动启动。
  • 为什么多了一个--
  • 关于两个额外的--,这个线程中有一个很好的答案@AmirHeshmati stackoverflow.com/questions/43046885/…
【解决方案6】:
npm start -- --port "port number"

【讨论】:

    【解决方案7】:

    "start": "react-scripts start", 更改为"start": "set PORT=3001 && react-scripts start",

    【讨论】:

      【解决方案8】:

      或者干脆在终端里

      set port=5500 && npm start
      

      【讨论】:

        【解决方案9】:

        适用于每台机器的解决方案,让它是 MAC、Window、Linux 或任何其他机器,只需指定要运行的端口即可。在你的 package.json 中这样做:

         "start": "export PORT=3001 && react-scripts start "
        

        【讨论】:

          【解决方案10】:

          npm start --port 8000 不起作用。你应该这样写命令。

          ng serve --port 8000
          

          【讨论】:

            【解决方案11】:

            $npm 运行开始 -- -p 8000

            8000 是端口号,您可以更改端口号

            【讨论】:

              猜你喜欢
              • 2018-04-20
              • 2019-03-03
              • 2018-09-13
              • 1970-01-01
              • 2018-02-14
              • 1970-01-01
              • 1970-01-01
              • 2021-10-24
              • 1970-01-01
              相关资源
              最近更新 更多