Contao-Camp 2024
Ergebnis 1 bis 19 von 19

Thema: Contao 4 Erweiterung - Dateien nicht überschreiben

  1. #1
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard Contao 4 Erweiterung - Dateien nicht überschreiben

    Moin,

    wir sind gerade dabei unser Nutshell Framework für Contao 4 fit zu machen. Zum Nutshell Framework gehört auch ein Starterkit, d.h. ein Ordner, der in /files abgelegt wird und den der Nutzer danach beliebig verändern kann. In Contao 3 habe ich, um sicherzustellen, dass nach einem Update die Dateien nicht überschrieben werden, in Composer folgende Regel definiert:

    Code:
    "extra": {
        "contao": {
          "files": {
            "files/starterkit": "files/starterkit",
            "package.json": "package.json",
            "gulpfile.js": "gulpfile.js"
          }
        }
      }
    sie auch http://de.contaowiki.org/Composer/Tu..._Konfiguration

    In Contao (4.3.10 ME) funktioniert dies leider nicht mehr. Gibt es eine Möglichkeit, dass ich Composer sagen kann, der Ordner starterkit soll einmalig unter /files angelegt werden? Vielleicht sogar wie in Contao 3 nicht veränderte Dateien aktualisieren?

    Danke und viele Grüße,
    Dennis

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.507
    User beschenken
    Wunschliste

    Standard

    Lass mich raten, deine Erweiterung für Contao 4 ist als "type: contao-bundle" definiert in der composer.json?

    Als Bundle funktioniert das nicht mehr ist meine Erfahrung, da geht abseits des Installationspfades nur die Variante mit dem "public" Verzeichnis, welches dann nach web/bundles/bundlename/ verlinkt wird.

    Als "type: contao-module" geht das noch, sofern man weiterhin das "contao-community-alliance/composer-plugin" noch im require hat.
    Aber ob dann noch die Managed Edition Bundle Features noch gehen, keine Ahnung.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.059
    Partner-ID
    10107

    Standard

    Es muss doch "userfiles" und nicht "files" sein, oder?

    https://github.com/contao-community-...taller.php#L70

  4. #4
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard

    type ist contao-module und das composer-plugin ist noch „required“, siehe auch https://github.com/ErdmannFreunde/eu.../composer.json
    An der Managed Edition scheint es auch nicht zu liegen, es funktioniert weder in der einen, noch in der anderen Version.

    Ich habe jetzt mal files auf userfiles geändert, dann bekomme ich allerdings den Fehler in Composer:

    Code:
    [ErrorException]
      copy(): The first argument to copy() function cannot be a directory

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.059
    Partner-ID
    10107

    Standard

    Die Dokumentation ist sehr spärlich. Ich bin mir nicht sicher ob "userfiles" einfach nur die Angabe eines Verzeichnisses unterstützt.

  6. #6
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.507
    User beschenken
    Wunschliste

    Standard

    Manches kann man per "composer -vvv ...." gut sehen, einige Hinweise kommen auch in var/log/prod-....log
    Da habe ich schon so einiges drüber erfahren müssen was so nirgends steht.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  7. #7
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard

    Leider gibt auch composer -vvv … keine nützlichen Infos aus. Der Pfad ist richtig, es wird dann aber wieder mit der Fehlermeldung

    Code:
    [ErrorException]
      copy(): The first argument to copy() function cannot be a directory
    abgebrochen. Ich weiß auch leider aktuell keine Erweiterung, die Dateien einmalig unter files anlegt, so dass ich mir das mal abschauen könnte.

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.059
    Partner-ID
    10107

    Standard

    Hm.. sollte es nicht
    Code:
    composer … -vvv
    sein? Davon abgesehen: wie gesagt, laut dem Code im composer-plugin werden Verzeichnisse bei "userfiles" nicht unterstütz, wenn ich das richtig sehe.

  9. #9
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard

    Habe doch zwischen den Zeilen noch ein paar Hinweise gefunden, werde daraus aber nicht schlau:

    Code:
    Exception trace:
     () at /contao4-me/vendor/contao-community-alliance/composer-plugin/src/Installer/AbstractModuleInstaller.php:349
     Composer\Util\ErrorHandler::handle() at n/a:n/a
     copy() at /contao4-me/vendor/contao-community-alliance/composer-plugin/src/Installer/AbstractModuleInstaller.php:349
     ContaoCommunityAlliance\Composer\Plugin\Installer\AbstractModuleInstaller->addCopies() at /contao4-me/vendor/contao-community-alliance/composer-plugin/src/Installer/AbstractModuleInstaller.php:121
     ContaoCommunityAlliance\Composer\Plugin\Installer\AbstractModuleInstaller->update() at phar:///contao4-me/composer.phar/src/Composer/Installer/InstallationManager.php:193
     Composer\Installer\InstallationManager->update() at phar:///contao4-me/composer.phar/src/Composer/Installer/InstallationManager.php:160
     Composer\Installer\InstallationManager->execute() at phar:///contao4-me/composer.phar/src/Composer/Installer.php:584
    Also wird in Contao 4 Ordner über userfiles zu kopieren nicht mehr unterstützt, ja? Dann muss ich mir wohl etwas anderes einfallen lassen.

  10. #10
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.059
    Partner-ID
    10107

    Standard

    Zitat Zitat von denniserdmann Beitrag anzeigen
    Habe doch zwischen den Zeilen noch ein paar Hinweise gefunden, werde daraus aber nicht schlau:

    Code:
    Exception trace:
     () at /contao4-me/vendor/contao-community-alliance/composer-plugin/src/Installer/AbstractModuleInstaller.php:349
     Composer\Util\ErrorHandler::handle() at n/a:n/a
     copy() at /contao4-me/vendor/contao-community-alliance/composer-plugin/src/Installer/AbstractModuleInstaller.php:349
     ContaoCommunityAlliance\Composer\Plugin\Installer\AbstractModuleInstaller->addCopies() at /contao4-me/vendor/contao-community-alliance/composer-plugin/src/Installer/AbstractModuleInstaller.php:121
     ContaoCommunityAlliance\Composer\Plugin\Installer\AbstractModuleInstaller->update() at phar:///contao4-me/composer.phar/src/Composer/Installer/InstallationManager.php:193
     Composer\Installer\InstallationManager->update() at phar:///contao4-me/composer.phar/src/Composer/Installer/InstallationManager.php:160
     Composer\Installer\InstallationManager->execute() at phar:///contao4-me/composer.phar/src/Composer/Installer.php:584
    Wie schon gesagt, sieh dir einfach mal den Code an: https://github.com/contao-community-...aller.php#L349
    So wie ich das sehe werden bei "userfiles" keine Verzeichnisse unterstützt, nur einzelne Dateien.



    Zitat Zitat von denniserdmann Beitrag anzeigen
    Also wird in Contao 4 Ordner über userfiles zu kopieren nicht mehr unterstützt, ja? Dann muss ich mir wohl etwas anderes einfallen lassen.
    Mit Contao 4 hat das nichts zu tun, das composer-plugin ist ja nicht Teil davon.

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.059
    Partner-ID
    10107

    Standard

    In der Version 2.x des composer-plugin war es tatsächlich noch so, dass man mit "files" diese Daten angeben konnte: https://github.com/contao-community-....php#L496-L535

    Version 2.x ist aber nicht mit Contao 4.x kompatibel.

    Du könntest dazu ja mal ein Issue hier machen.

  12. #12
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard

    Okay, vielen Dank.

    Hier gehts zum Issue: https://github.com/contao-community-...ugin/issues/68

  13. #13
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard Starterkit für Contao 4 jetzt verfügbar?

    Hallo Dennis,

    wenn ich das auf github richtig sehe, sollte das Problem doch jetzt gelöst sein. Leider kann ich das Starterkit immer noch nicht mit dem Composer installieren.
    Ein
    Code:
    composer require erdmannfreunde/euf_nutshell_kit
    ergibt
    Code:
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Installation request for erdmannfreunde/euf_nutshell_kit ^0.2.0 -> satisfiable by erdmannfreunde/euf_nutshell_kit[0.2.0].
        - erdmannfreunde/euf_nutshell_kit 0.2.0 requires contao/core-bundle >=3.5,<=3.5.9999 -> no matching package found.
    
    Potential causes:
     - A typo in the package name
     - The package is not available in a stable-enough version according to your minimum-stability setting
       see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
    
    Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
    
    Installation failed, reverting ./composer.json to its original content.
    Das heißt wohl, dass das Starterkit noch nicht für 4.x freigegeben ist. Wo klemmt es noch?
    Kann ich das Kit manuell installieren? Wie?

    Gruß,
    Ignatz

  14. #14
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.059
    Partner-ID
    10107

    Standard

    Ist nur im develop branch freigegeben: https://packagist.org/packages/erdma...it#dev-develop

    Du könntest einstweilen folgendes in deine composer.json im requre eintragen:
    Code:
    "erdmannfreunde/euf_nutshell_kit": "dev-develop as 0.2.0"
    und dann ein composer update.

  15. #15
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Danke Spooky, das hat funktioniert.

    Jetzt das nächste Problem. Ich arbeite das erste Mal mit gulp und benutze die gulpfile.js, die dem Starterkit beiliegt.
    Nach dem Aufruf von gulp habe ich aber in der Konsole die Ausgabe:
    Code:
    [13:33:52] Using gulpfile /opt/lampp/htdocs/xxxxxx/files/gulpfile.js
    [13:33:52] Starting 'styles'...
    [13:33:52] Finished 'styles' after 22 ms
    [13:33:52] Starting 'serve'...
    [13:33:53] Finished 'serve' after 30 ms
    [13:33:53] Starting 'default'...
    [13:33:53] Finished 'default' after 39 µs
    [Browsersync] Proxying: http://nutshell.localhost
    [Browsersync] Access URLs:
     ----------------------------------
           Local: http://localhost:3000
        External: http://10.0.2.15:3000
     ----------------------------------
              UI: http://localhost:3001
     UI External: http://10.0.2.15:3001
     ----------------------------------
    Hier bleibt der Cursor stehen, es geht nichts weiter und im dist-Verzeichnis ist auch keine default.css zu sehen. Da ich den Verzeichnisnamen „starterkit“ beibehalten habe, habe ich die gulpfile.js auch nicht angepasst. Wenn ich mir die so anschaue, sieht sie auch gut aus.

    Wo klemmt es jetzt?
    Geändert von Ignatz (19.09.2017 um 12:45 Uhr)

  16. #16
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard

    Moin Ignatz,

    das Problem ist folgendes:
    Mit Contao 3 konnte man noch Dateien außerhalb des files Verzeichnisses ablegen. Die gulpfile.js und package.json gehören eigentlich ins Hauptverzeichnis deines Projektes, so ist auch der Pfad innerhalb der gulpfile.js angelegt. Leider funktioniert das mit Contao 4 aktuell nicht und wir suchen nach einer langfristigen Lösung, siehe auch: https://github.com/ErdmannFreunde/eu...l_kit/issues/2

    Probiere mal die Dateien gulpfile.js und package.json ins Hauptverzeichnis zu verschieben und führe dort die Installation von gulp.js nochmal lokal aus. Den Ordner node_modules kannst du aus files löschen.

  17. #17
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Hallo Dennis,

    das hat jetzt funktioniert. Dann werde ich mal sehen, wie ich mit dem Framework zurecht komme.

    Vielen Dank erstmal!
    Ignatz

  18. #18
    Contao-Fan
    Registriert seit
    22.10.2009.
    Beiträge
    293

    Standard

    Hallo Dennis,

    ich habe doch noch eine Frage. Ist es normal, dass die entstehende default.css nicht minimiert ist? Meine default.css enthält noch sämtliche Kommentare, Zeilenumbrüche usw.
    Mir scheint, da fehlt noch irgendwas in der gulpfile.js oder ist das Absicht?

    Gruß,
    Ignatz

  19. #19
    Contao-Nutzer Avatar von denniserdmann
    Registriert seit
    10.04.2013.
    Ort
    Kiel
    Beiträge
    73

    Standard

    Moin Ignatz,

    mit dem Befehl gulp deploy erstellst du eine minifizierte CSS-Datei, siehe auch https://github.com/ErdmannFreunde/eu...s.example#L110
    In Zeile 59ff wird die CSS-Datei nachträglich minifiziert.

    Ich verwende den gulp-Befehl während der Entwicklung und gulp deploy, wenn die Entwicklung abgeschlossen ist.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •