web-dev-qa-db-ja.com

webpack:未定義のプロパティ 'match'を読み取れません

次のようにnpmを使用してwebpack(Symfony encore)をインストールしました。

Sudo npm install -g @symfony/webpack-encore --save-dev

これは/var/www/projectから実行しました

Windowsホスト/ Linuxゲストを扱う場合、パッケージマネージャーと共有フォルダーに問題があるため、グローバルにインストールする必要がありました。

/var/www/projectと同じディレクトリ(またはその下)にwebpack(node_modules)をインストールできません

したがって、package.jsonファイルは次のようになります。

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

これを使用して/var/www/projectからアンコールを実行します

/usr/local/bin/encore dev

その見返りに、この素​​敵な出力が得られます。

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

何が欠けていますか?

23
Alex.Barylski

単純な答えはrm -rf package-lock.jsonを実行するだけです

48
David S Lee

Package-lock.jsonおよびnode_modulesフォルダーを削除してから、npm installまたはyarn install

17

このメッセージの追加の理由は、package-lock.jsonが生成されたnpmメジャーバージョンとnpm installが実行されているバージョンの間の不一致である可能性があります。

たとえば、ロックファイルがnpm@5を使用して生成された後で、マイナーなnpm installの更新が原因でnpm@6node@8を実行しようとすると、このエラーが表示されます。

ここでの解決策は、他の回答で述べたnode_modulesandpackage-lock.jsonnpm installnpm@6から再度削除する場合の言及と同じです。またはnpm@5をそのまま使用してロックファイルを作成し、後でインストールします。

3
migg

configureRuntimeEnvironmentメソッドに引数を追加した後、それは私のために働き始めました:

Encore.configureRuntimeEnvironment('dev');

どういうわけか、引数を省略すると、エラーが表示され続けます。

0
whitebrow

webpack-encoreのグローバルインストールは現在サポートされていません。ただし、エラーメッセージは実際の説明ではありません。

このエラーメッセージを改善するために未解決の問題があります: https://github.com/symfony/webpack-encore/issues/36

webpack-encoreをローカルにインストールする必要があります。これが本当の問題です。

0
Kristof Feys

Java 11.以降、これと同じ問題が発生します。代わりにyarn install ...を実行してみてください。問題なく動作します。

0