[英]Serve React Build on separate server from Express/Node server
[英]Can I serve a create react app from an express server without running 'npm run build'?
我有一個帶有快速服務器的 nodejs。 我想從服務器提供一個 create react 應用程序。 如果不構建 React 應用程序,這可能嗎?
我現在正在做的一個項目的例子。
我為這樣的內置反應應用程序提供服務...
//// Server static resources.
ROUTER.use('/static', EXPRESS.static(PATH.join(__dirname, '../', '../', 'project', 'build', 'static')));
//// Server built react app.
ROUTER.get('/', function(req, res) {
res.sendFile( PATH.join(__dirname, '../', '../', 'project', 'build', 'index.html' ));
});
有什么方法可以在不構建 React 應用程序的情況下為其提供服務? 就像是...
ROUTER.get('/', function(req, res) {
//redirect to loopback port for react app.
});
您需要定義一個適合您的項目布局。
由於您有客戶端和服務器端代碼,您可以維護兩個文件夾,每個文件夾都包含特定於模塊的代碼。
像create-react-app這樣的 CLI 工具期望采用這種方法,除非您的項目使用某種SSR
一個合理的好的項目布局如下所示:
my-project/
├── my-project-react/
│ ├── package.json
│ ├── src/
│ ├── (... other project files)
│ └── README.md
├── my-project-express/
│ ├── package.json
│ ├── app/
│ ├── (... other project files)
│ └── README.md
├── .gitignore
└── README.md
這樣你就可以用 nodemon 服務 express 並與 webpack dev server 反應,只記得在express 上啟用 cors 。 您還必須根據 NODE_ENV 調整 Web 應用項目內的服務地址。
crisp-react有一個基於 Express 的后端子項目,它為示例 React 應用程序(不是 CRA)提供服務。
如果您按照入門或執行命令:
git clone https://github.com/winwiz1/crisp-react.git
cd crisp-react
yarn install && yarn start:prod
Control+C
終止然后您將有一個運行的 Express 實例,提供一個 React 應用程序,您可以通過將瀏覽器指向 localhost:3000 來查看該實例。 backend/Express 子項目只服務於 React 應用程序,它不構建應用程序,實際上無法構建它,因為后端在其package.json 中沒有作為依賴項的 React 庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.