2017-09-11 2 views
0

Ich habe verschiedene Dinge ausprobiert, und verschiedene Wege gesucht, um es zu lösen, aber ich brauche einige zusätzliche Hinweise, um diese Arbeit zu machen.nodejs Bootstrap-Projekt funktioniert nur lokal

Ich habe ein funktionierendes NodeJS Bootstrap-Projekt mit Gulp. Meine Website funktioniert lokal.

Also in meinem Projekt habe ich die fiollowing Dateien (unter anderen Ordner):

  • gulpfile.js
  • index.html
  • package.json

Wenn ich lokal laufen Mein Projekt via 'gulp dev' scheint alles perfekt zu sein. Auf Heroku nach der Bereitstellung gibt es mir den Fehler: npm ERR! fehlendes Skript: Start

Das macht Sinn, denn in der Tat hat mein Paket.json kein Startskript. Wie kann das lokal funktionieren?

irgendwelche Leitungen? danke

+0

können Sie Beiträge verfassen, finden Sie Ihre package.json und gulpfile.js ** Stellen Sie sicher, dass Sie alle vertraulichen Schlüssel etc.cc ** entfernen, um besser zu sehen, was möglicherweise falsch konfiguriert ist. – Andrei

+0

Ich verwende dieses Standardprojekt: https://github.com/BlackrockDigital/startbootstrap-stylish-portfolio.git –

+0

ein beschissen, er hat keine Knotendatei dort, um die Akten statisch zu dienen. Sie benötigen nur einen statischen Server für die Dateien, die Sie ausführen, nicht eine node.js-Datei. Dies liegt daran, dass der Schluck eine Laufzeitumgebung für die Entwicklung ist. Heroku node.js-Projekt sucht nach der Serverdatei node.js und gut .. da Sie gulp verwenden, um es während der lokalen Entwicklung zu hosten, hat es keinen Knotenserver. Ich kann Ihnen eine einfache Datei geben, die Ihr Projekt von node.js ausführen wird. – Andrei

Antwort

0

node.js file

Name index.js es

zuerst, bevor Sie bewegen beginnen alle aktuellen Dateien in einen neuen Ordner öffentlichen in den übergeordneten Ordner über öffentliche Erstellen Sie die Datei index.js genannt

Sobald Sie im übergeordneten Ordner über public sind, führen Sie dies in der Befehlszeile für das Verzeichnis aus, in dem Sie die ind erstellt haben ex.js Datei

npm i express --save

dies wird ein Mini-Rahmen für node.js installieren und an die project.json Config

für die index.js speichern Datei dies ist der Inhalt

/// START 
var express = require('express'); 
var path = require('path') 
var app = express();   
var port = process.env.PORT || 80; 

// this allows the files to be visible without having to type in the 
// index.html for the url simply do/and you'll get the url 
app.use(express.static(path.join(__dirname, 'public'),{ 
    extensions: ['html']} 
)); 

app.listen(port); 
///END 

Sie müssen sicherstellen, dass die index.js (Knotendatei) in 1 Ordner über dem Rest des Projekts ist. Das Projekt sollte

in diesem Fall in einem Ordner namens öffentlich sein, bevor Sie diese auf Ihrem lokalen Rechner arbeiten bekommen zum Heroku laden

Sie Knotenindex ausführen müssen.js Wenn Sie irgendwelche Fehler bekommen, können wir durch sie arbeiten, aber das ist eine wirklich generische statische Serving node.js Server.

letzte, was Sie tun müssen, ist in die project.json Datei gehen und fügen Sie den folgenden Sie es direkt über „Titel“ in diesem Fall hinzufügen können, so ist es einfach später

"scripts": { 
    "start": "node index.js" 
} 
+0

Vielen Dank Andrei! Dank dieser Rückmeldung habe ich es herausgefunden. Ich habe es jetzt funktioniert! : D –

0

Wenn der Code clientseitig ist, sollten Sie das gebündelte HTML/CSS/JS in a static server bereitstellen. Es macht keinen Sinn, den Knoten nur auszuführen, um Ihre statischen Assets bereitzustellen.

+0

Nun, die Website hat auch serverseitige Funktionalität, also ist es nicht nur statisch. Aber ja, ich vermisse die server.js-Datei ... nicht sicher, warum ... übrigens, das ist das grundlegende Projekt, das ich benutze: https://github.com/BlackrockDigital/startbootstrap-stylish-portfolio.git –

0

Ive verwendet Heroku nie aber für meine Knoten-Anwendung, die in AWS gehostet hatte ich einen Startskript zu meinem package.json können

"scripts": { 
"start": "set NODE_ENV=production nodemon app.js", 
"test": "echo \"Error: no test specified\" && exit 1" 
}, 

Sie Ähnliche Befehle Knotenstart verwenden, um hinzuzufügen, wenn youre nicht nodemon verwenden.

Verwandte Themen