[英]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.