Bonjour à tous,
Quelqu'un pourrait m'aider? j'ai ce problème quand je lance composer. Merci d'avance.

In JsonFile.php line 340:

"C:\composer\composer.bat" does not contain valid JSON
Parse error on line 1:
@echo OFF:: in case
^
Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

6 réponses


Rarija
Auteur

J'ai installé via php et ça a installé.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup. php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Hello,

En regardant l'erreur que tu fournis, je ne comprends pas pourquoi il essaye de charger le script .bat comme un json.

Peux-tu nous indiquer la commande que tu lance ?

Rarija
Auteur

Salut,
la commande c'est "composer" tout court

C:\composer
λ composer

In JsonFile.php line 340:

"C:\composer\composer.bat" does not contain valid JSON
Parse error on line 1:
@echo OFF:: in case
^
Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

Mmmmh vu l'erreur ton composer.json semble etre cassé, tu peux le montrer?

Rarija
Auteur

le composer.json :
{
"name": "symfony/website-skeleton",
"type": "project",
"license": "MIT",
"description": "A skeleton to start a new Symfony website",
"minimum-stability": "stable",
"prefer-stable": true,
"require": {
"php": ">=7.2.5",
"ext-ctype": "",
"ext-iconv": "
",
"symfony/flex": "^1.17|^2"
},
"flex-require": {
"symfony/console": "",
"symfony/dotenv": "
",
"symfony/framework-bundle": "",
"symfony/runtime": "
",
"symfony/webapp-pack": "",
"symfony/yaml": "
"
},
"require-dev": {
},
"config": {
"allow-plugins": {
"composer/package-versions-deprecated": true,
"symfony/flex": true,
"symfony/runtime": true
},
"optimize-autoloader": true,
"preferred-install": {
"": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\Tests\": "tests/"
}
},
"replace": {
"symfony/polyfill-ctype": "
",
"symfony/polyfill-iconv": "",
"symfony/polyfill-php72": "
"
},
"scripts": {
"auto-scripts": [
],
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": ""
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "5.4.
"
}
}
}

Question bête mais la tu lance la commande composer dans le dossier composer ou se trouve le binaire, mais je suppose que ton projet lui ne se trouve pas ici ? Si c'est le cas alors tu peux le mettre ailleurs tant que ton executable composer est accessible via la liste des dossiers de la variable d'environnement PATH.

Par contre tu peux vérifier que ton composer.json ressemble à ceci :

{
    "name": "symfony/website-skeleton",
    "type": "project",
    "license": "MIT",
    "description": "A skeleton to start a new Symfony website",
    "minimum-stability": "stable",
    "prefer-stable": true,
    "require": {
        "php": ">=7.2.5",
        "ext-ctype": "*",
        "ext-iconv": "*",
        "symfony/flex": "^1.17|^2"
    },
    "flex-require": {
        "symfony/console": "*",
        "symfony/dotenv": "*",
        "symfony/framework-bundle": "*",
        "symfony/runtime": "*",
        "symfony/webapp-pack": "*",
        "symfony/yaml": "*"
    },
    "require-dev": {
    },
    "config": {
        "allow-plugins": {
            "composer/package-versions-deprecated": true,
            "symfony/flex": true,
            "symfony/runtime": true
        },
        "optimize-autoloader": true,
        "preferred-install": {
            "*": "dist"
        },
        "sort-packages": true
    },
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "App\\Tests\\": "tests/"
        }
    },
    "replace": {
        "symfony/polyfill-ctype": "*",
        "symfony/polyfill-iconv": "*",
        "symfony/polyfill-php72": "*"
    },
    "scripts": {
        "auto-scripts": [
        ],
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "conflict": {
        "symfony/symfony": "*"
    },
    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "5.4.*"
        }
    }
}

Surtout avec App\\ (2 anti slash) et pareil pour App\\Tests\\ ?

Si ce n'est pas le cas corrige et relance un coup de composer puis composer install

Alors déjà il faut que tu foutes une * dans tous les champs vides ""

Ensuite tu lances un composer install, supprimes le composer.lock si il y en a un avant de lancer composer install

Et après ça devrait être bon

D'ailleurs pourquoi ton composer.json est différent de celui que propose symfony ? Symfony skeleton github

Ensuite tu lances un composer install, supprimes le composer.lock si il y en a un avant de lancer composer install
https://hellodear.in

https://teatv.ltd/