2017-08-31 193 views
4

我使用ReactJs構建了一個網站,爲了查看網站,我通常通過瀏覽器執行npm start並轉到localhost:3000。S3亞馬遜靜態網站與React?

我現在想在S3上託管這個網站,但沒有EC2實例。我的理解是,npm是一個進程,所以它是服務器端的,因此,我需要購買計算來實際部署我的網站。

我發現這個教程中沒有提到支付的EC2實例計算時間:https://www.fullstackreact.com/articles/deploying-a-react-app-to-s3/

然而,他們仍然使用NPM這讓我困惑。

我的問題是:如果我只使用Static S3 Website而沒有計算,是否可以使用React?如果是的話 - 如何繞過NPM過程?

React - component in seperate script does not work

在上面後,用戶試圖做出反應的你好世界應用程序,但所有的答案指向他們做出的服務器服務內容的方向。我認爲反應是一個前端事物,可以在沒有服務器端流程的情況下運行。這是真的?有人可以解釋爲什麼node.js是必要的或與反應配對,並且是否可以在沒有ec2計算的情況下在s3上使用反應?

回答

3

可以在S3上完全託管一個靜態反應站點。在這種情況下,您只能使用node/npm作爲構建工具並運行開發服務器(localhost:3000)。

npm會下載您的依賴關係,您可以使用節點或gulp或webpack將資產構建到靜態文件中。

然後你會上傳文件到s3,它將提供靜態文件。

如果你有一些後端節點代碼,那麼你需要使用ec2或其他類型的主機。但是,如果它完全是靜態的JavaScript,那麼就不需要節點服務器。

這裏有一些鏈接,可以幫助更詳細地解釋:

+0

我只想在這裏添加一件事,對於後端節點代碼,您可以使用Lambda函數並獲得無服務器世界的優勢:) –

1

嘗試蓋茨比!在這裏:https://www.gatsbyjs.org/

從Github的頁面:「速度極快的靜態網站發生器陣營

一旦你生成你的靜態頁面,則可以在S3部署,Github上的網頁...的選擇你的!