今日、しばらくおいていたLaravelプロジェクトを久しぶりに動かそうと、”yarn run watch”したところ、
$ yarn run watch
yarn run v1.22.4
$ npm run development -- --watch
/path/to/directory/node_modules/npm/node_modules/npmlog/log.js:57
log.progressEnabled = log.gauge.isEnabled()
^
TypeError: log.gauge.isEnabled is not a function
at Object.<anonymous> (/path/to/directory/node_modules/npm/node_modules/npmlog/log.js:57:33)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Module.require (internal/modules/cjs/loader.js:1025:19)
at require (internal/modules/cjs/helpers.js:72:18)
at //path/to/directory/node_modules/npm/bin/npm-cli.js:19:13
at Object.<anonymous> (/path/to/directory/sites/node_modules/npm/bin/npm-cli.js:75:3)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
上記のようなエラーが発生。
yarn installなどを行ったうえで実行してみたのですがエラーは変わらず…
調べてみたところ下記の記事が見つかりました。
TypeError: log.gauge.isEnabled is not a function – Qiita
どうやら、node_modulesを一度削除して入れなおせば解決するとのこと。
記事上ではグローバルなnode_modulesですが、自分の場合はプロジェクトのnode_modulesがおかしくなっているようだったので、プロジェクト内のnode_modulesを一旦削除。
rm -rf /path/to/directory/node_modules
そのあと、もう一度yarn installを実行したら
$ yarn install
yarn install v1.22.4
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@1.2.9: The platform "linux" is incompatible with this module.
info "fsevents@1.2.9" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents@2.0.7: The platform "linux" is incompatible with this module.
info "fsevents@2.0.7" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > sass-loader@7.2.0" has unmet peer dependency "webpack@^3.0.0 || ^4.0.0".
[4/4] Building fresh packages...
Done in 46.33s.
$ yarn run watch
yarn run v1.22.4
$ npm run development -- --watch
> @ development /path/to/directory
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"
10% building 1/1 modules 0 active
webpack is watching the files…
10% building 2/5 modules 3 active ...node_modules/style-loader/lib/addStyles.jsBrowserslist: caniuse-lite is outdated. Please run next command `yarn upgrade`
98% after emitting SizeLimitsPlugin
DONE Compiled successfully in 14699ms 11:06:11
Asset Size Chunks Chunk Names
/css/app.css 178 KiB /js/app [emitted] /js/app
/js/app.js 1.96 MiB /js/app [emitted] /js/app
無事yarn run watchが通りました!
なお、rm -rfを行う際は誤って別のディレクトリやファイルを指定しないように十分注意して下さい。