簡體   English   中英

nodejs - 在離線服務器上安裝 reactjs 應用程序的生產版本,然后設置為作為服務運行

[英]nodejs - install production build of reactjs app on offline server, then set up to run as a service

我使用全局安裝了以下 package

npm install -g serve

在我有互聯網的開發PC上。 它是目前唯一安裝在我的 PC 上的 package。

https://github.com/vercel/serve#readme

編譯並創建構建文件夾后,我運行以下命令以使用 HTTPS 運行代碼的生產版本。

serve -s build --listen 3000 --ssl-cert "/my/cert/server.crt" --ssl-key "/my/key/server.key"

好的,那么問題來了。 我必須在未連接到 Internet 的服務器上運行我的代碼。 我已將全局 node_modules 文件夾復制並移動到服務器上,並確認服務器和 dev pc 之間的權限相同。 我還確認 package 被視為安裝在服務器上:

npm list -g --depth=0

當我在服務器上運行上面的 serve 命令時,它不知道 serve 是什么。 CentOS 抱怨

bash:未找到服務...

因此,我在服務器上的 ./~bashrc 文件中添加了一個別名(我也必須在我的開發 PC 上這樣做並重新加載:

vim ~/.bashrc
export PATH="$(npm bin -g):$PATH"
source ~/.bashrc

我在另一個 SO 帖子中找到了導出命令,它在我的開發電腦上運行,但是 linux 仍然無法識別服務命令。 我還需要知道如何確定如何從服務中運行此命令,這意味着我還需要“serve”命令的絕對路徑。

我有點堅持這一點,因為所有在線文章都只討論如何將“npm start”作為服務運行,我可以毫無問題地進行軟件開發構建。 我找不到有關如何為生產構建設置服務的任何信息。

我不需要 100% 使用serve ,但我的另一個同事正在將它用於他的項目,該項目可以訪問互聯網。

我什至試圖拼湊模塊中主 js 文件的位置:

/path/to/node_modules/serve/build/main.js -s build --listen 3000 --ssl-cert "/my/cert/server.crt" --ssl-key "/my/key/server.key"

這將允許我啟動服務,但隨后我從 apache 后端服務器收到各種跨站點腳本錯誤。

一如既往,任何幫助將不勝感激! 謝謝!

漠視,

當我在有互聯網的電腦上運行 npm install -g serve時,它創建了一個到服務模塊的軟鏈接。 我通過在我的開發電腦上運行以下命令發現了這一點:

which serve

我在離線服務器上創建了該軟鏈接,它似乎正在工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM