簡體   English   中英

PM2啟動npm-啟動錯誤

[英]PM2 start npm — start error

我已經使用“ npm start”啟動我的Express服務器(對於我的angular 2 cli項目)已經有幾個星期了,它工作正常,但崩潰時不會自動重新啟動。 現在,為了使其自動重啟,我嘗試使用PM2。 根據我的研究,它應該像運行一樣簡單

pm2 start npm -- start

但是,這立即使我處於“已停止”狀態。 進行“ pm2 show”會使我查看npm-error-0.log中的錯誤,在那里我看到了此錯誤

SyntaxError: Unexpected token :
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:588:28)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Object.<anonymous> (C:\Users\mingliu_99\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:83:21)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
C:\PROGRAM FILES\NODEJS\NPM.CMD:1
(function (exports, require, module, __filename, __dirname) { :: Created by npm, please don't edit manually.
                                                              ^

這是我的package.json文件中的啟動腳本:

"start": "cross-env NODE_ENV=production node dist-prod/server.js"

那么,這是什么問題呢?

順便說一句,當我嘗試使用此命令時

pm2 start dist-prod/server.js

看來一切正常(在線狀態為綠色)。 但是,服務器未在服務,這可能是因為缺少env參數。

更新:

我發現了這一點 ,事實證明這是Windows 10上pm2的問題。

該帖子結尾處建議的解決方法似乎工作正常。

基本上,首先安裝node-cmd,然后創建一個startscript.js:

var cmd=require('node-cmd'); 
cmd.run('npm start');

然后運行

pm2 start startscript.js

您必須參考服務器設置腳本,例如。 pm2 start app:name backend scripts

在這種情況下,您的腳本就是偵聽服務器的任何script.js。

要立即觀看和重新加載,請使用pm2 start app:name backend腳本--watch

暫無
暫無

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

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