2017-06-19 31 views
-2

我已經幾乎完全與工作一直非常溺愛通過陣營創建反應的應用程序內具有構建工具的NPM這使得部署我的項目,以靜態網頁寄存超級簡單(github上頁/浪涌)和最後只是給了我原始的html/css/js。將現有Express節點應用程序發佈到靜態網站的最簡單方法?

但最近一個朋友找我,在什麼學校,他是在他們已經教了他一噸關於如何編寫應用程序,只需快速,但沒有有關如何部署它們。我暫時把他的代碼放在了Heroku上,但他可能會更好地使用靜態託管(因爲該站點非常簡單,只使用快速路由/功能,沒有服務器端代碼或交互)

有沒有類似create-react-app的構建功能來表達?這種令人難以置信的簡單事情絕對需要完整節點服務器的開銷。

+0

如果確實沒有服務器端交互(包括模板!),他可以將他的/ views和/ public目錄複製到LAMP服務器上的公共目錄中。不需要另一個JS工具,這是非常微不足道的:)!至於部署一個真正的Web應用程序而不是靜態資產,答案就是現實,如果你看看Digital Ocean的網站,他們有很好的指導,用Node + nginx配置更多的生產就緒設置 – cheesenthusiast

回答

1

我想你可能會混淆一些東西,所以讓我們從頭開始,以確保我們使用相同的定義。

節點是一個JavaScript引擎,由V8引擎(它是爲Chrome構建的)提供動力。它基本上是一個JavaScript解釋器。

快遞是一個包,建立在Node之上,它建立在Node的http庫上。它是(節點的)nginxapache的等價物之一。

Heroku是一個基於雲的網絡主機,它具有動態擴展的能力(比如AWS,它是建立在它之上的)。

說「快車不需要一個完整的節點服務器」並沒有多大意義。他只需要一臺可以運行Node應用程序的服務器。 Node服務器的大小可能會有所不同,實際上他可能不需要很大的一個。

Heroku可能是一個非常合適的主機。他不必使用擴展或任何其他功能,並且在那裏部署Node應用程序相當容易。

許多其他流行的主機也可以支持節點。如果他們給你終端訪問權和安裝應用程序的能力,他們幾乎肯定可以。

據我所知,目前沒有像create-react-app這樣的程序會啓動一個express應用程序的新實例。這可能是因爲他們非常容易安裝。只需兩個文件就足夠了一個最基本的快遞應用:package.json和您的明確文件(我將其命名爲index.js

的package.json:

{ 
    "name": "my-app", 
    "dependencies": { 
    "express": "latest" 
    } 
} 

index.json:

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')); 

將它部署到任何可以運行節點並運行命令npm install; node index.js的服務器將啓動它的運行。

很多時候,您實際上會創建一個express服務器來爲您的Web應用程序提供服務,這些服務器經常用React編寫(這是我每天工作的場景)。 create-react-app只是建立一個在其結構中頗有見地的項目的快捷方式,但不是使用React的唯一方式。 (技術上講,你可以在沒有package.json的情況下離開,但是你必須在服務器上手動運行npm install express,這真的很奇怪,所以不要這麼做)。

相關問題