Composer, je ne sais pas quoi mettre comme tags

Par Rarija, il y a 3 ans


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', '{', '['

9 réponses

Rarija, il y a 3 ans

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');"

quenti77, il y a 3 ans

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, il y a 3 ans

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', '{', '['

popotte, il y a 3 ans

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

Rarija, il y a 3 ans

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.
"
}
}
}

quenti77, il y a 3 ans

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

popotte, il y a 3 ans

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

quenti77, il y a 3 ans

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