次のように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
何が欠けていますか?
単純な答えはrm -rf package-lock.jsonを実行するだけです
Package-lock.jsonおよびnode_modulesフォルダーを削除してから、npm install
またはyarn install
このメッセージの追加の理由は、package-lock.json
が生成されたnpm
メジャーバージョンとnpm install
が実行されているバージョンの間の不一致である可能性があります。
たとえば、ロックファイルがnpm@5
を使用して生成された後で、マイナーなnpm install
の更新が原因でnpm@6
でnode@8
を実行しようとすると、このエラーが表示されます。
ここでの解決策は、他の回答で述べたnode_modules
andpackage-lock.json
とnpm install
をnpm@6
から再度削除する場合の言及と同じです。またはnpm@5
をそのまま使用してロックファイルを作成し、後でインストールします。
configureRuntimeEnvironment
メソッドに引数を追加した後、それは私のために働き始めました:
Encore.configureRuntimeEnvironment('dev');
どういうわけか、引数を省略すると、エラーが表示され続けます。
webpack-encore
のグローバルインストールは現在サポートされていません。ただし、エラーメッセージは実際の説明ではありません。
このエラーメッセージを改善するために未解決の問題があります: https://github.com/symfony/webpack-encore/issues/36
webpack-encore
をローカルにインストールする必要があります。これが本当の問題です。
Java 11.以降、これと同じ問題が発生します。代わりにyarn install ...
を実行してみてください。問題なく動作します。