fragen stichworte

Führt elastische Beanstalk die Postinstall aus einer package.json-Datei aus?

Ich verwende elastische Beanstalk, um eine node.js-App bereitzustellen. In meinem scripts Abschnitt von package.json habe ich:

 "scripts": {
    "start": "node_modules/.bin/coffee server.coffee",
    "test": "NODE_ENV=test node test/runner.js",
    "coverage": "NODE_ENV=test COVERAGE=1 node test/runner.js -R html-cov test/> ./test/coverage.html",
    "testw": "fswatch -o test src | xargs -n1 -I{} sh -c 'coffeelint src server.coffee ; npm test'",
    "db:drop": "node scripts/drop-tables.js",
    "encryptConfig": "node_modules/.bin/coffee config/encrypt.coffee",
    "decryptConfig": "node_modules/.bin/coffee config/decrypt.coffee",
    "postinstall": "npm run decryptConfig"
  },

Der npm install scheint zu funktionieren. Das postinstall wird jedoch nicht ausgeführt. Ist das ein bekanntes Problem? Wenn ja, wie kann ich etwas nach npm install aber vor npm start ausführen?

antworten

Ich bin gerade auch auf dieses Problem gestoßen. Ich fand, dass ein postinstall -Skript nicht laufen würde, aber ein prestart würde. Meins sieht so aus:

"scripts": {
    "start": "node index.js",
    "prestart": "node node_modules/webpack/bin/webpack.js"
}

Das bündelt meine Webpack-Sachen jetzt korrekt, bevor ich den Server starte, wenn ich lokal eb deploy starte.

Ich glaube, Sie meinten damit, dass Sie mit ELB (Elastic Beanstalk) ELB als Load Balancer arbeiten. Elastic Beanstalk führt standardmäßig npm start aus, um Ihre Anwendung auszuführen. Ich empfehle Ihnen, Ihre Module in Ihrem Build-Prozess mit Ihrer Anwendung zu packen.