首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将现有的Express节点应用程序发布到静态站点的最简单方法?

将现有的Express节点应用程序发布到静态站点的最简单方法?
EN

Stack Overflow用户
提问于 2017-06-19 20:27:56
回答 2查看 1.8K关注 0票数 1

我被几乎完全使用React的create-react应用程序所宠坏了,该应用程序为npm提供了构建实用程序,这使得将我的项目部署到静态网站托管非常容易(github页面/激增),最后只给我提供了原始的html / css / js。

但最近一位朋友来找我,无论他在哪所学校,他们都教他如何用Express编写应用程序,但却没有教他如何部署它们。目前我已经在Heroku上找到了他的代码,但他可能会更好地使用静态托管(因为这个站点非常简单,只用于路由/功能,没有服务器端代码或交互)

有什么像创建-反应-应用程序的构建功能的快速吗?这件极其简单的事情绝对不可能需要一个完整的节点服务器的开销。

EN

回答 2

Stack Overflow用户

发布于 2018-03-15 20:14:28

我对在非常简单的站点上工作有着同样的感觉,所以我已经将我的express应用程序转换为网络助推方法,它在引擎盖下使用相同的表达式。

您唯一需要做的就是创建web-boost.json配置文件,它看起来像

代码语言:javascript
复制
{
  "routes": {
    "/": {
      "view": "index.twig",
      "vars": {
        "title": "Home page",
        "greeting": "Hello world!"
      },
      "assets": {
        "js/index.min.js": [
          "js/index.js"
        ]
      }
    },
    "/user": {
      "view": "user.twig",
      "vars": {
        "title": "User's page",
        "greeting": "Hi John Doe!"
      },
      "assets": {
        "css/user.min.css": [
          "styles/bootstrap.min.css",
          "styles/user.scss"
        ]
      }
    }
  }
}

然后使用wb-compile命令将动态应用程序转换为静态应用程序。

在此之后,我刚刚将静态页面部署到AWS.S3

票数 2
EN

Stack Overflow用户

发布于 2017-06-19 20:43:20

我想你可能把一些东西混为一谈,所以让我们从一开始就开始,以确保我们使用的是相同的定义。

Node是一个JavaScript引擎,由V8引擎(它是为Chrome构建的)提供动力。它基本上是一个JavaScript解释器。

Express是一个包,构建在Node的http库之上。它是节点与nginxapache的对应物之一。

Heroku是一种基于云的web主机,它具有动态扩展的能力(比如AWS,它是在此基础上构建的)。

说"Express不需要一个完整的节点服务器“并不是很有意义。他只需要一台能运行Node应用程序的服务器。节点服务器的大小可能会有所不同,实际上,他可能不需要非常大的服务器。

Heroku可能是一个非常合适的主人。他不需要使用缩放或任何东西,而且在那里部署Node应用程序也相当容易。

许多其他流行的主机也可以支持Node。如果他们给你终端访问和安装应用程序的能力,他们几乎肯定可以。

据我所知,没有任何像create-react-app这样的程序只会衍生出一个express应用程序的新实例。那可能是因为它们设置起来非常简单。对于一个普通的快速应用程序来说,只要两个文件就足够了:package.json和您的快递文件(我将命名为index.js )。

package.json:

代码语言:javascript
复制
{
   "name": "my-app",
   "dependencies": {
     "express": "latest"
   }
}

index.json:

代码语言:javascript
复制
const express = require('express');

const app = express();

app.get('/', (req, res) => res.send('<h1>Hello World</h1>').end());

app.listen(8888, () => console.log('Listening on port 8888'));

将其部署到任何可以运行Node并运行命令npm install; node index.js的服务器上,就会启动它。

通常情况下,您将创建一个express服务器来为您的web应用程序提供服务,这些应用程序通常都是用React编写的(这是我每天都在使用的场景)。create-react-app只是建立一个在其结构上相当固执己见的项目的一种快速方式,但并不是使用React的唯一方法。

(从技术上讲,没有package.json是可以逃脱的,但是您必须在服务器上手动运行npm install express,这很奇怪,所以不要这样做)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44639402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档