2017-03-22 1 views
1

Ich baue ein Projekt, das ich mehrere Instanzen ausführen, mit dem exakt gleichen Code, für immer verwenden.
Mit für immer, ist es möglich, eine ID zu setzen, mit --id "id".Forever Commandline mit NPM-Argumenten

{ 
    "name": "project", 
    "version": "1.0.0", 
    "description": "Test", 
    "main": "app.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "forever": "forever start --id $1 -c \"npm start\" ./" 
    }, 
    "author": "Renzo <[email protected]>", 
    "license": "ISC" 
} 

Auf diese Weise, ich bin wie ein Standard für andere App-Instanzen zu machen versuchen:

npm run forever cms

Die Idee ist, dass dies die App mit idcms beginnen würde.
Stattdessen wird jedoch die App mit der ID true aufgelistet.

Kann mir jemand helfen?

Antwort

0

Versuchen Sie, diese zu ändern:

npm run forever cms 

dazu:

npm run forever -- cms 

aber man müsste auch die Reihenfolge der Argumente in package.json ändern.

Auch können Sie diese in einem Skript setzen, wie forever.sh:

#!/bin/sh 
forever start --id $1 -c "npm start" ./ 

und dies in package.json:

"scripts": { 
    "forever": "sh forever.sh" 
}, 

und diese dann über die Befehlszeile verwenden:

npm run forever -- cms 

Um es auf Windows sehen diese Antworten funktioniert:

+0

Diese Idee d Am Ende funktionierte es nicht, und ich mochte die Idee nicht, env zu machen. bestimmte Skripte, also habe ich es jetzt auf andere Weise gelöst, danke trotzdem! – CreasolDev

0

Dies ist eher eine Problemumgehung als eine Antwort, aber jetzt es so ich tue:

"scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "forever": "forever start --id $ncmsfid -c \"npm start\" ./", 
}, 

Und es starten mit ncmsfid=cms npm run forever