[Symfony 5] Sf5 et Webpack Encore

La commande yarn encore dev ne fonctionne pas

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous,

J’essaie d’utiliser le composant Webpack Encore dans mon projet Symfony 5.

Pour ce faire, j’ai exactement suivi la doc de Symfony, à savoir composer require symfony/webpack-encore-bundle puis yarn install.

J’essaie ensuite de compiler mon app.js grâce à yarn encore dev, mais cela me renvoie l’erreur suivante :

yarn run v1.22.5 error Command "encore" not found. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Voici mon package.json, dans lequel on voit pourtant que "encore dev" est bien présent. :

{ "devDependencies": { "@symfony/stimulus-bridge": "^2.0.0", "@symfony/webpack-encore": "^1.0.0", "core-js": "^3.0.0", "regenerator-runtime": "^0.13.2", "stimulus": "^2.0.0", "webpack-notifier": "^1.6.0" }, "license": "UNLICENSED", "private": true, "scripts": { "dev-server": "encore dev-server", "dev": "encore dev", "watch": "encore dev --watch", "build": "encore production --progress" } }

Normalement, yarn install permet la création de :

  • un répertoire assets, avec entre autre le fichier app.js
  • un fichier webpack.config.js
  • un dossier node_modules

Tout cela a bien été créé mais mon dossier node_module ne contient que un fichier .yarn-integrity.

Est-ce normal ? Mon erreur console suite au yarn encore dev ne viendrait-il pas de là ?

La commande à lancer est plutôt yarn run dev plutôt que yarn encode dev si tu as un script dev, non ?

Sinon oui ton dossier node_modules devrait être rempli : la commande yarn install renvoie quoi ?

Je suis pas sûr que yarn install créé le fichier webpack.config.js par contre. La doc de Symfony dit bien qu’il faut le créer toi-même.

yarn install ne me renvoie rien de particulier :

worker1000@Docker_ProxyEPN_SF5_apprentissage_test-workspace:/home/project$ yarn install
yarn install v1.22.5
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.34s.
+0 -0

C’est bien dans ce dossier que tu as le fichier package.json ? (le dossier /home/project) Essaie peut être yarn upgrade (ou supprime le fichier package-lock.json !).

Pour ce qui est du fichier webpack.config.js il est normalement créé par Symfony.

Et pour yarn encore dev normalement tout devrait bien se passer car lorsque yarn reçoit une commande qu’il ne connait pas il exécute alors yarn run [la commande inconnue].

Quoi qu’il arrive pour ton histoire il faut réussir à remplir le dossier node_modules dans ton cas ^^ . Soit à l’aide d’un yarn install ou d’un yarn upgrade.

Problème résolu.

Étant donné que dans mon packagist.json mes dépendances sont liées au dév (devDependencies) j’ai essayé en faisant un yarn install --production=false

Voir la doc : https://classic.yarnpkg.com/en/docs/cli/install#toc-yarn-install-production-true-false

Ce qui signifie que par défaut j’étais en mode production (et de fait, echo $NODE_ENV me renvoie "production").

Du coup mon dossier node_modules est bien rempli et mon yarn encore dev fonctionne également :ange:

+0 -0

Ah c’est peut être la nouvelle version de yarn qui n’installe plus les dépendances de dev par défaut. Mais si tu as dans ton environnement NODE_ENV défini à production, alors en effet il n’y a pas besoin de chercher plus loin, ton problème c’était ça !

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte