web-dev-qa-db-fra.com

webpack: impossible de lire la propriété 'match' d'undefined

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?

23
Alex.Barylski

réponse simple lancez rm -rf package-lock.json

48
David S Lee

Essayez de supprimer le dossier package-lock.json et node_modules, puis exécutez npm install ou yarn install

17
Mohammad altenji

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_modulesetpackage-lock.json et npm install sur npm@6 encore. Ou restez sur npm@5 pour le fichier de verrouillage et l'installation ultérieure.

3
migg

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.

0
whitebrow

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.

0
Kristof Feys

J'ai ce même problème depuis Java 11. Essayez d'exécuter yarn install ... au lieu. Ça marche pour moi.

0
Achille_vanhoutte