【问题标题】:Run node server and webpack together using package.json使用 package.json 一起运行节点服务器和 webpack
【发布时间】:2016-12-13 13:29:45
【问题描述】:

通过学习这个视频,我已经完成了 todo 应用:

Super MEAN Stack Tutorial: Angular, Node/Express, Webpack, MongoDB, SASS, Babel/ES6, Bootstrap

在 19:18 的视频中 this url 告诉我,如果我想使用 npm 在 windows 中运行它,我应该在单独的 git-bash 实例中使用以下两个命令运行开发:

node server
webpack-dev-server --progress --colors

但在 Linux(或 Windows 以外的任何其他操作系统)中,您可以使用此脚本:

"Scripts": {
    "start": "NODE_PATH=$NODE_PATH:./src node server",
    "dev": "npm start & webpack-dev-server --progress --colors"
}

那么,有什么方法可以在 windows 中做同样的事情吗?

另外,在那个教程中,我可以看到那个端口号。 3000 分配给节点服务器,但由于使用开发依赖项,他在浏览器中运行 localhost:8080。你可以看到here。教程完成后,我跟随并创建了该应用程序。现在我想部署它。所以,我首先想学习在非开发依赖模式下运行测试我的网站。即当我在浏览器中输入 localhost:3000 时,我的应用程序应该可以成功运行。那么,任何人都可以解释其中的步骤吗?

更新:

我是 node.js 的新手。我在 node 上观看了很多视频,并试图从中学到一些东西。在所有视频中,我看到我在端口号上运行节点服务器。 3000 然后我在浏览器中输入 localhost:3000。现在最后我观看了关于他使用 webpack 的平均堆栈的视频。现在,我很困惑。我认为有两台服务器正在运行。第一个服务器是 webpack 的服务器,第二个服务器是节点的服务器。直到今天,我在浏览器中输入了 localhost:3000,因为我提到我的代码中的节点将使用端口 3000。但现在在视频中,他在浏览器中运行 localhost:8080。这意味着使用了 webpack 的服务器。然后节点服务器发生了什么。为什么我不能只运行 localhost:3000?同样在视频中解释了 webpack 是一个开发依赖项。所以,我认为在应用程序完成并准备好部署后,我的项目可以在节点服务器上运行(通过对代码进行一些更改,我不确定)。让我们举个例子。现在我不想将应用程序部署到真实服务器。我希望在我朋友的电脑上运行相同的应用程序。他不是开发者。所以,他不应该依赖 webpack,因为 webpack 是一个开发依赖。所以,他应该能够在节点服务器而不是 webpack 的服务器上运行应用程序。所以,他应该输入 localhost:3000 而不是 localhost:8080。这就是我不明白的。

【问题讨论】:

    标签: node.js webpack


    【解决方案1】:

    让我们分解一下:

    1. 如果您已定义此脚本:

      "Scripts": {
          "start": "NODE_PATH=$NODE_PATH:./src node server",
          "dev": "npm start & webpack-dev-server --progress --colors"
      }
      
    2. ...然后这个 npm 命令:npm run dev

    3. ...实际上调用了这两个动作:

      a) npm start & # 在后台运行 NPM

      b) webpack-dev-server --progress --colors # 在前台同时运行 webpack

    您可以使用 Windows 以多种方式完成同样的事情,从一个简单的 .bat 文件开始,如下所示:

    1. 示例:RunDev.bat:

      start npm start
      webpack-dev-server --progress --colors
      

    ================================================ =========================

    强烈建议:

    1. 请暂时忘记观看视频。尝试几个“hello world”教程。更重要的是,使用实际代码。尝试更改代码中的内容,看看会发生什么。

    2. 至少暂时忘记 webpack。

    3. 将 npm 视为“构建工具”; 不是作为运行应用程序的一种方式。至少片刻。

    4. 关注“节点”。编写一个“节点应用程序”。

    5. 您的“节点应用程序”的一部分将需要“ExpressJS”和“Jade”(现在更名为“pug” - 我仍在使用“Jade”)。使用 npm 获取您的 ExpressJS 和 Jade 依赖项,但要专注于 Node。

    建议教程:

    A Simple Website in Node.js, Ben Gourley

    1. 请务必:

    一个。下载代码

    b.使用下载的代码完成教程

    如果您在学习本教程时可能遇到任何具体问题,请回复(新帖子)。

    【讨论】:

    • PS:对于你的附加问题:如果你想让 webpack 在端口 3000 上运行,那么只需在你的命令中添加“--port NN”:webpack-dev-server --progress --colors --port 3000
    • 如果我在 Windows 上的 git-bash 中尝试这些脚本:我收到以下错误:'NODE_PATH' 不被识别为内部或外部命令、可运行程序或批处理文件。
    • 我其实对端口号不感兴趣。但我想把这个项目变成一个电子应用程序。所以,我要求一个命令和端口号。
    • 另外,我想问一下,如果我的应用已经完成,那我为什么要关心开发依赖呢?我不能在没有 webpack 的情况下运行 npde 服务器。这是我真正想问的问题。
    • 您最初的问题实际上是“问:如何在 Windows 中运行后台作业 (&)?”一种答案是在 Windows .bat 文件中使用start。然后你说“哎呀,我正在使用 git-bash”。如果您使用我建议的 .bat 文件,您会抱怨不会发生错误。您更新了帖子以询问端口号,然后您说您不关心端口号。你正在使用 webpack,然后你说你不想使用 webpack。你想要什么做什么????
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多