J'ai installé webpack (Symfony encore) en utilisant npm comme suit:
Sudo npm install -g @symfony/webpack-encore --save-dev
J'ai couru ça depuis /var/www/project
J'ai dû installer globalement en raison de problèmes avec les gestionnaires de packages et les dossiers partagés lorsque je traitais avec un hôte Windows/Linux.
Je ne peux pas installer le webpack (node_modules) dans le même répertoire (ou en dessous) que le /var/www/project
Donc mon fichier package.json ressemble à ceci:
{
"name": "test",
"version": "1.0.0",
"description": "This is a test",
"main": "index.js",
"dependencies": {},
"devDependencies": {
"@symfony/webpack-encore": "^0.15.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Alex",
"license": "MIT"
}
Je lance encore de /var/www/project
en utilisant
/usr/local/bin/encore dev
J'obtiens cette belle sortie en retour:
Running webpack ...
TypeError: Cannot read property 'match' of undefined
- index.js:125 parse
[lib]/[webpack-encore]/[yargs-parser]/index.js:125:12
- index.js:761 Function.Parser.detailed
[lib]/[webpack-encore]/[yargs-parser]/index.js:761:10
- yargs.js:938 Object.Yargs.self._parseArgs
[lib]/[webpack-encore]/[yargs]/yargs.js:938:27
- yargs.js:927 Object.get [as argv]
[lib]/[webpack-encore]/[yargs]/yargs.js:927:19
- index.js:725 Object.configureRuntimeEnvironment
[lib]/[@symfony]/webpack-encore/index.js:725:54
- index.js:770 Proxy.parameters
[lib]/[@symfony]/webpack-encore/index.js:770:45
- webpack.config.js:3 Object.<anonymous>
/var/www/project/webpack.config.js:3:8
- module.js:573 Module._compile
module.js:573:30
- module.js:584 Object.Module._extensions..js
module.js:584:10
- module.js:507 Module.load
module.js:507:32
Qu'est-ce que je rate?
réponse simple lancez rm -rf package-lock.json
Essayez de supprimer le dossier package-lock.json et node_modules, puis exécutez npm install
ou yarn install
Une raison supplémentaire de ce message peut être une non-concordance entre la version majeure de npm
et celle de package-lock.json
a été généré avec la version npm install
est exécuté.
Si, par exemple, le fichier de verrouillage a été généré à l'aide de npm@5
et plus tard, vous essayez de npm install
sur npm@6
à cause de disons un mineur node@8
mettez à jour vous verrez cette erreur.
La solution ici est comme mentionnée dans les autres réponses pour supprimer node_modules
etpackage-lock.json
et npm install
sur npm@6
encore. Ou restez sur npm@5
pour le fichier de verrouillage et l'installation ultérieure.
Après avoir ajouté un argument à la méthode configureRuntimeEnvironment
, il a commencé à fonctionner pour moi:
Encore.configureRuntimeEnvironment('dev');
D'une manière ou d'une autre, si vous omettez les arguments, l'erreur continue de s'afficher.
Installation de webpack-encore
globalement n'est actuellement pas pris en charge. Le message d'erreur n'est cependant pas vraiment explicatif.
Il y a un problème ouvert pour améliorer ce message d'erreur: https://github.com/symfony/webpack-encore/issues/36
Vous devriez essayer d'installer webpack-encore
localement, c'est le vrai problème ici.
J'ai ce même problème depuis Java 11. Essayez d'exécuter yarn install ...
au lieu. Ça marche pour moi.