Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160

    eliminare elementi del file composer.json che servono solo nella fase di sviluppo

    Ho creato i file

    .gitignore
    composer.dev.json
    composer.json

    codice:
    $ .gitignore
    composer.dev.json
    
    
    
    $ cat composer.dev.json 
    {
        "name": "bla/bla",
        "scripts": {
            "test": [
                "phpunit"
            ]
        },
        "require": {
            "bla/bla": "^1.0"
        },
        "require-dev": {
            "phpunit/phpunit": "^10.5"
        }
    }
    
    
    
    $ cat composer.json 
    {
        "name": "bla/bla",
        "require": {
            "bla/bla": "^1.0"
        }
    }
    Come potete vedere composer.dev.json contiene cose che all'utente finale non dovrebbero interessare, per cui l'ho inserito nel file .gitignore

    Ad ogni modo, quando voglio lavorare con composer in ambiente di produzione, uso i comandi

    codice:
    $ composer blabla1...
    $ composer blabla2...
    $ composer blabla3...
    Invece quando sono in ambiente di sviluppo

    codice:
    $ export COMPOSER=composer.dev.json
    e poi come al solito

    codice:
    $ composer blabla1...
    $ composer blabla2...
    $ composer blabla3...
    Quindi come avrete intuito, mi piace usare due file composer.* diversi in base all'ambiente dove mi trovo.

    Tuttavia, girovagando nei repository di https://github.com/ , vedo che molti includono nel file composer.json cose che dovrebbero stare solo nelle macchine di sviluppo

    codice:
        "scripts": {
            "test": [
                "show-login-data",
                "phpunit",
                ...
            ]
        },
        "autoload-dev": {
            ...
        },
        "require-dev": {
            ...
        }
    ecc.

    Non dovrebbe essere una pratica sbagliata (talvolta pericolosa)?
    O forse sono io che ragiono male?
    Ultima modifica di astros3; 21-02-2025 a 11:58

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160
    UPPPPPPP

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Si fa tutto con un file composer.json, per questo esistono le direttive "require" e "require-dev".
    Pericoloso non lo è, al limite l'utente finale installerà roba che non gli serve, ma di solito chi prende un software da github da installare sa anche come farlo.
    composer install
    per installare tutto

    composer install --no-dev
    per installare solo la versione "production" del software

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160
    Ma, invece dell'approccio correttivo (composer install --no-dev), non sarebbe meglio usare l'approccio preventivo (come già illustrato)?

    E come se quando compro un prodotto, mi vengono venduti tutti (o in parte) gli strumenti appartenenti alla catena di montaggio, manuali tecnici eccessivamente dettagliati (solo per il personale tecnico), documenti per strategia di vendita, ecc.

    E poi domando al venditore: a che mi servono?
    A niente, caro cliente, li può escludere dalla confezione.

    E allora perchè me li includete?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Perché su Github ci si mette il prodotto completo per chiunque volesse contribuire allo sviluppo o crearne una fork, non quello da distribuire al cliente che deve solo usarlo.
    Se devi distribuirlo solo per l'uso lo compili o metti insieme tu sviluppatore come serve e metti a disposizione questa versione.
    Chi deve solo usare il tuo software potrebbe anche non sapere affatto cosa sia Composer e non è tenuto a saperlo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160
    metti insieme tu sviluppatore come serve
    Cioè?

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Cioè crei un pacchetto coi soli file necessari alla produzione e distribuisci quello per i clienti che devono solo usarlo.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    160
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.