Plugin - zusätzliche npm packages

Mir ist leider noch nicht ganz klar, wie ich ein npm package verwenden kann für die Administration. Lege ich dazu einfach meine package.json im Plugin root an und importiere dann mein Package in meiner Einstiegsdatei?

Oder wie genau holt sich webpack bei euch weitere npm packages? In der Dokumentation habe ich dazu leider nichts gefunden.

Im Regelfall musst du die NPM Abhängigkeiten ja eh mit ausliefern. Genauso wie das kompilierte JS und JavaScript. Zumindest wenn es in den Store soll.

Generell package.json im Plugin ablegen und dann deine Abhängigkeiten selbst laden.

Wie sieht es denn später aus bei der Installation des Plugins?

Darauf wollte ich hinaus. Denn den node_modules Ordner kopiert man sich in der Regel ja nicht mit.

Sprich: Wie holt sich das build script dann die package.json vom Plugin / installiert die Abhängigkeiten?

Bei den Sass Files muss man sich diese ja einfach im Plugin importieren, die sind ja da. Und die packt man sich ja auch bspw. mit ins Repo. Aber nicht den node_modules Ordner.

Ich kann dir nicht sagen, was da best practise ist, ich mach das so: FroshHelpDesk/package.json at master · FriendsOfShopware/FroshHelpDesk · GitHub

Also im Repostitory habe ich nur meine package.json. Das nachladen steht dann halt in der Anleitung - das wäre ja ohnehin nur der DEV-Modus.

Das Zip was bspw. für den Store oder den Plugin-Manager gebaut wird, hat ja ohnehin das kompilierte Javascript mit dabei. Da würde ich dann auch die Abhängigkeiten mit reinpacken. Aber da baut das ja nicht Shopware mit webpack o.ä., sondern du lieferst es Installierfertig mit aus.

Konkret also: 

Github: nur package.json und eig. auch kein kompiliertes JS/CSS. NPM Install und Administration:build wird vor Installation ausgeführt
ZIP-Paket für Upload mit Plugin-Manager/Store: npm-modules & kompiliertes JS/CSS wird direkt mit ausgeliefert, damit abhängigkeiten alle direkt vorhanden und JS/CSS bereits kompiliert ist

Kann jetzt allerdings nur für die Administration sprechen.

 

 

2 „Gefällt mir“