Grundsatzfragen zu Node / Ordnerstruktur / Module etc
Hi!
Da ich eine alte Flash Applikation gerne auf HTML/JS umsetzen möchte bzw. muss weil eben Flash, bin ich gerade dabei mich ein wenig in die Thematik Javascript / Node einzuarbeiten...
Grundlagen der objektorientierten Programmierung ( AS3, C# ) sind zwar vorhanden – mit Betonung auf Grundlagen.
Die beiden Rheinwerkbücher sind an meiner Seite:
Node.js – Das Praxisbuch.
Javascript – Das umfassende Handbuch.
Editor: VS Code auf einem Win10 System
Jedenfalls ergeben sich laufend grundsätzliche Fragen, welche mir zum besseren Verständnis helfen könnten. Vielleicht ist jemand ja so freundlich und kann mir die beantworten :-)
Allem voran die Ordnerstruktur und was ich letztlich auf den Server stelle. Mein Ordner sieht so aus:
- build:
js/ output für meine bundles mit webpack
- public:
/assets/ (js/img/css )
index.html
- src:
/labels/ *.js dateien
app.js ( entry )
modul1.js
modul2.js
Teil der webpack.config:
Code:
context: path.resolve('src'),
entry: {
ewm: "./app", // main-bundle wird in html eingelesen
// diese bundles werden später datumsabhängig geladen ->
ewd: "./labels/labels_default",
ewv: "./labels/labels_v",
ewo: "./labels/labels_o",
ewh: "./labels/labels_h",
ewx: "./labels/labels_x"
},
output: {
path: path.resolve('build/js/'),
publicPath: '/public/assets/js/',
filename:"[name].bundle.js"
},
devServer:{
contentBase:'public'
}
Jetzt ist's ja so dass Webpack die Bundles nach → build/js schreibt. In der index.html in public ist das main-bundle mit:
Code:
<script src="/public/assets/js/ewm.bundle.js"></script>
Also verschiebe ich manuell die bundles von build/ nach public/assets/js. Habe gelesen dass es besser ist nicht in den public/assets/js Ordner die Bundles auszugeben ( wenn ja: warum?) . Wenn ich das lokal dann laufen lasse werden die Pfade ordentlich aufgelöst und alles gefunden.
Nun die erste Frage:
Wenn ich das dann online stelle, wird dann online nur der public Ordner hochgeladen ? Dann würde der Pfad ja nicht mehr stimmen und müsste in assets/js/ ewm.bundle.js umgeändert werden. Wenn ich das mache läuft's lokal nicht mehr. Hab ich hier falsche path.resolve Angaben. Und sollte ich nicht besser gleich die Bundles in den public/assets/js ausgeben lassen?