Ich bin im Begriff, mein erstes AngularJS-Projekt zu versuchen, und es ist sinnvoll, Node.js für das Back-End zu verwenden, obwohl dies bedeutet, dass AngularJS und Node.js gleichzeitig von Grund auf neu gelernt werden.
Das erste, was ich versuche, ist eine gute Dateistruktur. Bisher hat meine reine HTML / CSS-Vorlage die folgende Verzeichnisstruktur ...
_site/
Fonts/
Javascript/
SASS/
Stylesheets/
Index.html
(_site ist ein Arbeitsverzeichnis für PSDs usw.)
Ich habe hier eine Beispielverzeichnisstruktur für eine Node.js / AngularJS-App gefunden ....
... was die folgende Verzeichnisstruktur vorschlägt.
app.js --> Application configuration
package.json --> For npm
public/ --> All of the files to be used in on the client side
css/ --> CSS files
app.css --> Default stylesheet
img/ --> Image files
js/ --> JavaScript files
app.js --> Declare top-level application module
controllers.js --> Application controllers
directives.js --> Custom AngularJS directives
filters.js --> Custom AngularJS filters
services.js --> Custom AngularJS services
lib/ --> AngularJS and third-party JavaScript libraries
angular/
angular.js --> The latest AngularJS
angular.min.js --> The latest minified AngularJS
angular-*.js --> AngularJS add-on modules
version.txt --> Version number
routes/
api.js --> Route for serving JSON
index.js --> Route for serving HTML pages and partials
views/
index.jade --> Main page for the application
layout.jade --> Doctype, title, head boilerplate
partials/ --> AngularJS view partials (partial jade templates)
partial1.jade
partial2.jade
Das sieht für mich also ziemlich gut aus (abgesehen von der Tatsache, dass ich Jade nicht verwenden würde).
Ich habe noch folgende Fragen ...
Ich möchte alle Front-End- und Back-End-Dateien getrennt halten. Diese Lösung legt alle Front-End-Dateien im Verzeichnis public / ab. Was ist sinnvoll, da die meisten öffentlich sein müssen? Ist es jedoch sinnvoll, die Ordner SASS und _site hier abzulegen? Ich könnte sie einfach dort lassen, aber nicht hochladen, wenn ich sie in Produktion bringe, aber es scheint falsch, weil sie nicht öffentlich sein sollten. Sie gehören auch nicht auf Root-Ebene mit all dem Back-End-Zeug.
Wäre es nicht besser, AngularJS von einem CDN zu laden ?
Da der Server nur eine Vorlage (die Hauptanwendungsvorlage) bereitstellen muss und der gesamte andere HTML-Code im Front-End erstellt wird, ist es nicht sinnvoller, die Datei index.html statisch zu halten, den Ordner views und zu löschen Erstellen Sie einen Partials / Ordner unter public / wie es die ursprüngliche AngularJS Seed-Anwendung tut?
Mir ist klar, dass dies alles Ansichtssache ist, und ich könnte sie technisch platzieren, wo immer ich will, aber ich hoffe, dass jemand, der erfahrener ist als ich, mich über die Fallstricke verschiedener Verzeichnisstrukturen informieren kann.