LoginSignup
1
0

More than 1 year has passed since last update.

VercelにReactアプリをデプロイしようとしたら「warning package-lock.json found」とか「Module not found: Error: Can't resolve」って怒られた人向けの記事

Last updated at Posted at 2023-02-04

概要

読んで字の如く、表題の通り
VercelにReactアプリをデプロイしようとしたら「warning package-lock.json found」とか「Module not found: Error: Can't resolve」って怒られた人向けの記事です。

Reactの学習をしていたのですが、ためしにVercelへデプロイしてみたところ、
Vercelにちょっと怒られてしまったというのが経緯です。

理屈はちょっとわからないので書きません。
私が問題を解決した方法について記載しますので了承ください。

warning package-lock.json found

こちらの原因は複数のパッケージ管理ライブラリが存在していることです。
Vercel的にNGっぽいです。

解決方法

package-lock.jsonなどのパッケージ情報が記載されたファイルを削除する。
私の場合はyarnとnpmが混在していました。
(教材が初めからそうなっているとか罠では。。。)

Module not found: Error: Can't resolve

こちらの原因は指定されたpathでモジュールが見つからないことです。
同じ記法を使用していてもエラーとならないコードもあり、相対パス/絶対パスやフォルダ構成に問題がありそうです。

解決方法

コンポーネントの宣言記法を変更する
before

const コンポーネント名 = () =>
{
 //コンポーネント
}
export default コンポーネント名

after

export const コンポーネント名 = () =>
{
 //コンポーネント
}

コンポーネントのインポート記法を変更する。
before

import コンポーネント名 from パス

after

import {コンポーネント名} from パス

その他

ほかに試したこと。
これがなくてもデプロイは成功しました。

  • ビルドコマンドを以下に変更
    • npm run build
  • インストールコマンドをいかに変更
    • npm install

終わり

以上です。
これまでC#のリリースビルドなどの経験はありましたが、Webアプリケーションのデプロイは初めてで勉強になりました。
以前に比べると便利になったそうですが、Webマスター(?)の道はまだ長そうです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0