よもやま話β版

よもやま話を書きます。内容はぺらぺら。自由に書く。

devDependenciesに書いてしまってて反省

毎週日曜あたりには更新しようと思っていたが、前回(10/2(日))は作業が最高潮に立て込んだので無理寄りの無理だった。 反省を兼ねて、とんでもなくしょーもないことで詰まったことを記録しておく。

作業の最後の最後の最後で、HerokuのProduction環境にデプロイしようとしたところ、次のようなエラーが出て、30分くらい立て込んだ。 おいおい、Staging環境ではあんなに元気に動いていたじゃあないか。どうしちまったんだ。すでに日曜夜21時を過ぎており、頭を抱えるハメになった。

remote:        /tmp/build_569be6ef/node_modules/webpack-cli/bin/cli.js:93
remote:                     throw err;
remote:                     ^
remote:
remote:        Error: Cannot find module 'vue-loader'
remote:        Require stack:
remote:        - /tmp/build_569be6ef/config/webpack/environment.js
remote:        - /tmp/build_569be6ef/config/webpack/production.js
remote:        - /tmp/build_569be6ef/node_modules/webpack-cli/bin/utils/convert-argv.js
remote:        - /tmp/build_569be6ef/node_modules/webpack-cli/bin/cli.js
remote:        - /tmp/build_569be6ef/node_modules/webpack/bin/webpack.js
remote:            at Function.Module._resolveFilename (node:internal/modules/cjs/loader:956:15)
remote:            at Function.Module._load (node:internal/modules/cjs/loader:804:27)
remote:            at Module.require (node:internal/modules/cjs/loader:1028:19)

よくよく考えると、必要なパッケージを devDependencies に含めてしまっていたためだったという、それだけの話であった。 おのれのおろかさよ...。 (まだwebpacker使ってるのかというところは見逃してください...)

(package.json)

{
  "dependencies": {
    "@rails/webpacker": "5.4.3",
    "vue": "^3.2.33",
    "webpack": "^4.46.0",
    "webpack-cli": "^3.3.12"
  },
  "devDependencies": {
    "@vue/compiler-sfc": "^3.2.40",
    "axios": "^0.27.2",
    "vue-loader": "^17.0.0",
    "webpack-dev-server": "^3"
  }
}

$ yarn remove vue-loader
$ yarn add vue-loader

という塩梅で

{
  "dependencies": {
    "@rails/webpacker": "5.4.3",
    "@vue/compiler-sfc": "^3.2.40",
    "axios": "^0.27.2",
    "vue": "^3.2.33",
    "vue-loader": "^17.0.0",
    "webpack": "^4.46.0",
    "webpack-cli": "^3.3.12"
  },
  "devDependencies": {
    "webpack-dev-server": "^3"
  }
}

無事デプロイできた。はぁーーーっ(クソデカため息) 自戒をこめて。