古い Vue プロジェクトに Vite サポートを追加する方法

古い Vue プロジェクトに Vite サポートを追加する方法

1. はじめに

会社のプロジェクトを引き継いで2年になります。今では毎回プロジェクトを起動するのに1分近くかかり、HMRは数秒かかります。しかし、Vite2がリリースされてから、光が見えてきましたが、アップグレードしたことはありませんでした。昨日、ついに我慢できなくなり、アップグレード後数秒で完了しました。

vite は、Vue の作者 Yuxi You によって開発された Web 開発ツールです。次の機能があります。

高速コールドスタート

インスタントモジュールホットアップデート

真のオンデマンドコンパイル

2. アップグレードを開始する

注: 開発環境をアップグレードしたばかりで、パッケージングには引き続き webpack を使用しています (パッケージングに vite も使用してみましたが、パッケージング後に iview のフォントアイコンに問題があることがわかりました。事前検証の結果、静的リソースの問題であることがわかりました。vite でパッケージ化された静的リソースは、デフォルトでアセットの下に配置されます。解決策を知っている方がいらっしゃいましたら、解決策を教えてください)

2.1 vuecliプラグインviteをインストールする

vue add vit # viteプラグインを追加する

プラグインがインストールされると、package.json のスクリプトに追加されます。

{
    「スクリプト」: {
        "vite": "ノード ./bin/vite"
    }
}

pnpm を使用する学生の場合、プロジェクトのルート ディレクトリに .npmrc ファイルがない場合、自分で追加し、ファイルに shamefully-hoist=true を追加してください。そうしないと、vite プラグインのインストールが失敗する可能性があります。

2.2. プロジェクトを実行してエラーをトラブルシューティングする

2.2.1、TypeError: 未定義のプロパティ 'alias' を読み取ることができません

このエラーは、vue.config.js の configureWebpack がオブジェクト構成メソッドのみを使用できるために発生します (vue cli はオブジェクトと関数の両方をサポートしています)。

2.2.2 「/src/components/editPwd」への無制限のファイルシステムアクセス

この問題の原因は、vite のデフォルト設定の拡張子に .vue が含まれていないことです。解決策:

1. vue.configに拡張機能を追加する

// vue.config.js
モジュール.エクスポート = {
    Webpackを構成する:{
        解決する:{
            拡張子: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"]
        }
    }
}

2. インポート時に、すべての vue コンポーネントにサフィックス .vue を追加します。

2.2.3. 起動ポートが8080ではない

viteのデフォルトの起動ポートは3000なので、vue.config.jsのdevServerにポート:8080を追加する必要があります。

// vue.config.js
モジュール.エクスポート = {
    開発サーバー:{
        ポート: 8080
    }
}

2.2.4. 開発中のプロキシ障害

プロキシが失敗する理由: vuecli の書き換え構成は pathRewrite ですが、vite では rewrite です。

解決:

モジュール.エクスポート = {
    開発サーバー: {
        ポート: 8080、
        プロキシ: {
            "/api/コスト/": {
                ターゲット: "http://localhost:9331",
                変更元: true、
                パス書き換え: {
                    "^/api/コスト/": "/",
                },
                書き換え: path => path.replace(/^\/api\/cost\//, "/"), // vite に適応
            },
            "/api/import/": {
                ターゲット: "http://localhost:9332",
                変更元: true、
                パス書き換え: {
                    "^/api/import/": "/",
                },
                書き換え: path => path.replace(/^\/api\/import\//, "/"), // vite に適応
            },
            "/api/": {
                ターゲット: "http://localhost:9333",
                ws: 真、
                変更元: true、
                パス書き換え: {
                    "^/api/": "/",
                },
                書き換え: path => path.replace(/^\/api\//, "/"), // vite に適応
            },
        },
    },
}

3. アップグレード完了

これでアップグレード プロセス全体が終了しました。全体的には、それほど大きな問題もなく、比較的スムーズに進みました。また、ほとんどの問題は比較的簡単に解決できました。

これで、古い vue プロジェクトに vite サポートを追加する方法に関するこの記事は終了です。古い vue プロジェクトに vite を追加する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も皆様に 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vite+ElectronでVUE3デスクトップアプリケーションを素早く構築
  • Vite2.x に基づく Vue 3.x プロジェクトの実装
  • vite2.0+vue3 モバイルプロジェクトの詳細な説明
  • vite を使用して vue3 アプリケーションを構築する方法
  • Vue3とViteについて

<<:  HttpとHttpsの両方をサポートするNginxの詳細な設定

>>:  MySQL 8.0 ディクショナリテーブル拡張の詳細な説明

推薦する

MySQL 5.7.22 バイナリパッケージのインストールとインストール不要版 Windows 設定方法

次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...

バントリストコンポーネントをスクロールしても、スクロールバーの位置は保持されます。

バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、kee...

MySQL 圧縮の使用シナリオとソリューション

導入圧縮トランスポート プロトコル、圧縮列ソリューション、圧縮テーブル ソリューションなど、MySQ...

MYSQLの文字セット設定方法(端末の文字セット)の詳しい説明

序文ターミナルを使用してデータベースまたはテーブルを作成するたびに、文字セットが latin1 であ...

MySQLデータファイルの保存場所を表示する方法

次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...

CentOS 起動時にカーネルモジュール overlayfs 操作を自動的にロードする

CentOS でカーネル モジュールを自動的にロードするには、/etc/sysconfig/modu...

mysql8.0.23 msi インストールの超詳細なチュートリアル

1.MySqlをダウンロードしてインストールする公式ウェブサイトからMySqlデータベースをダウンロ...

Mysql の追加、削除、変更、クエリステートメントのシンプルな実装

Mysql の追加、削除、変更、クエリステートメントのシンプルな実装追加されたレコード: テーブル名...

Dockerコンテナでは、イメージを簡素化してサイズを縮小する方法を詳しく説明しています

目次1.画像レイヤーの数を減らす1. 命令の統合2. 多段階ビルド3. スクワッシュ機能を有効にする...

CSS は Apple のスムーズなスイッチ ボタン効果を模倣します

目次1. コード分析2. ソースコードソースコード1. コード分析1.1 HTMLコード分析 <...

Docker ベースの Jenkins のデプロイに関する詳細なチュートリアル

このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

Docker に Tomcat をインストールし、Springboot プロジェクトの WAR パッケージをデプロイする方法

簡単です。チュートリアルを見てください。ブロガー1. まずdockerを起動するサービスdocker...

製品を選択した後、右下隅に√記号を表示するための純粋なCSS

おすすめの記事: CSS 疑似クラスの右下隅をクリックすると、選択を示すチェックマークが表示されます...

MySQL の遅いクエリの最適化方法と最適化の原則

1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...