バージョンに応じて区別するにはどうすればよいですか?以下の記事では、プロジェクト内の vue のバージョンに応じた差別化方法を紹介しますので、ご参考になれば幸いです。
最近、プロジェクトの初期化とビルド中に、コンソール エラーの問題が発生しました。lib_exports.getCurrentInstance は関数ではありません
。この問題のトラブルシューティングを行っています。その過程でいくつかの知識を学びました: vue には、2.6.x
、2.7
、3.x
など、多くのバージョンがあります。異なる vue バージョンには使用方法があります。異なるプロジェクトに公開ツールを提供する必要があると仮定すると、異なるプロジェクトの Vue バージョンに応じてツールをどのように区別できるでしょうか?まず実装方法を考えてから、質問を念頭に置きながら読み進めてください。 [関連する推奨事項: vuejs ビデオ チュートリアル 、Web フロントエンド開発 ]
初期トラブルシューティング
エラー スクリーンショットからわかるように、直接の原因は、vueuse## の
useVModel メソッドで
getCurrentInstance メソッドを呼び出すことによって発生するコンソール エラーです。 #。 vueuse のソース コードから、vueuse が
vue-demi から
getCurrentInstance メソッドをインポートしていることがわかります。
vue-demi のソース コードを確認すると、何か間違っていることがわかりました。このプロジェクトで使用する vue のバージョンは vue2 です。なぜ
isVue なのかというと、コード内の = true ? ?さらに、
getCurrentInstance は vue2.7 と vue3 にのみ組み込まれています。vue2.7 より前では、
getCurrentInstance は
@vue/composition-api を通じてのみ使用できます。 。
##vue-demi の
package.json の
scripts セクションを確認すると、
postinstall で構成されていることがわかります。
npm scriptフック、
postinstallフックは、
pnpm install コマンドを実行した後に実行されます。
node_modules/vue-demi/scripts/postinstall.js が何をするのか見てみましょう。最初に vue (
)。 vite または webpack で { find: /^vue$/, replace: '@xf/vue' },
などの vue エイリアスを設定した場合、その設定はスクリプトはここにあります。はい、スクリプトは依存関係がインストールされた直後に実行されるためです。この時点ではプロジェクトは開始されておらず、Vite とは何の関係もありません。 vue をロードしようとすると、条件を判断して switchVersion メソッドを実行します。
vue-demiさまざまな vue バージョンに差別化された処理を実装する原則は、次のとおりです。こちらです。
根本原因と解決策
プロジェクトのコンソール エラーの問題に戻ります。これは、vue-demi がプロジェクトの vue を認識できないためです。これは、vue ソース コードが変更された後のインストールされたプロジェクトが
@xf/vue であり、pnpm add vue
が存在しないためです。認識されない場合、vue-demi
はデフォルト設定を使用します (デフォルト設定は vue3 設定です)。 コードの実行時に使用する vue は vue2.5.X です。
import { getCurrentInstance } from 'vue'
を試行すると、必ずエラーが発生します。
解決策は、vue-demi
が vue バージョン構成を手動で切り替えるコマンドを提供することです。プロジェクトの準備 npm スクリプトを構成します: npx vue-demi-switch 2
,その後、プロジェクトの依存関係をインストールし、vue2 構成に手動で切り替えるたびに実行されます。
(学習ビデオ共有: vuejs 入門チュートリアル 、基本プログラミング ビデオ )
以上がvueのバージョンに応じてプロジェクトを区別する方法については記事で詳しく説明していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

VueUse 是 Anthony Fu 的一个开源项目,它为 Vue 开发人员提供了大量适用于 Vue 2 和 Vue 3 的基本 Composition API 实用程序函数。本篇文章就来给大家分享几个我常用的几个 VueUse 最佳组合,希望对大家有所帮助!

Vue3如何更好地使用qrcodejs生成二维码并添加文字描述?下面本篇文章给大家介绍一下Vue3+qrcodejs生成二维码并添加文字描述,希望对大家有所帮助。

如何使用VueRouter4.x?下面本篇文章就来给大家分享快速上手教程,介绍一下10分钟快速上手VueRouter4.x的方法,希望对大家有所帮助!

本篇文章给大家整理分享8个GitHub上很棒的的 Vue 项目,都是非常棒的项目,希望当中有您想要收藏的那一个。

本篇文章带大家聊聊vue指令中的修饰符,对比一下vue中的指令修饰符和dom事件中的event对象,介绍一下常用的事件修饰符,希望对大家有所帮助!

如何覆盖组件库样式?下面本篇文章给大家介绍一下React和Vue项目中优雅地覆盖组件库样式的方法,希望对大家有所帮助!


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



