banner
飞天御剑流

飞天御剑流

前端,jAVAsCRIPT
github

uniappのソースコードデバッグ

HBuilderX の HBuilderX.4.15.2024050802\HBuilderX\plugins\uniapp-cli パスを開く
HBuilderX.4.15.2024050802\HBuilderX\plugins\uniapp-cli\bin\uniapp-cli.js フォルダを見つける📂すべてはここから始まります
image
上記のファイルを見つけてログを出力する
プリントがあることがわかりましたので、間違った場所を見つけていません
image
そして、コードをたどると、service.run uni-build が実行されたことがわかります。それでは、run uni-build がどのように作成されたのかを見てみましょう。これがメインラインです

// @vue/cli-service/lib/Service.js
const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())

service.run((process.env.NODE_ENV === 'development' && platform === 'h5') ? 'uni-serve' : 'uni-build',
    args).catch(err => {
    error(err)
    process.exit(1)
})

new Service の時に、node_modules@vue\cli-service パッケージが参照され、このパッケージがエクスポートされます
image
つまり、このファイルは @vue/cli-service/lib/Service.js です
run を見つける
image
その中で、uni-build コマンドを初期化しています
使用されたパッケージを印刷する
image

上記のビルトインを除いて、他のすべては対応するパッケージを参照しています。したがって、これらのパッケージを参照します

テスト結果、@dcloudio/vue-cli-plugin-hbuilderx パッケージの設定が異なるため、新しいバージョンでは hbuilder ソフトウェアで実行できません

2 つのパッケージ、vue-cli-plugin-hbuilderx と vue-cli-plugin-uni を変更し、エラーを処理すると、ファイルの更新が検出できないことがわかります。これは、これらの 2 つのパッケージの設定に問題があることを示しています
let time = uniStatisticsConfig.reportInterval;

次のようなコード行が見つかりましたが、これが型チェックに影響を与える可能性があります
// 恢复 vue-loader 的 ts 检查
tsLoaderOptions.transpileOnly = false

    uniのいくつかの共通のメソッドの設定uni-cli-shared


    updateTsLoaderがファイルに一致しません

設定を比較すると、2 つのバージョンの updateTsLoader が ts ローダーの設定ロジックを異なる方法で書いていることがわかります。修正してみましょう

configure-webpack ファイル全体を上書きしてみて、テストしてみますが、コンパイルはまだ通りません
このファイルかもしれません
image

vue-cli-plugin-builders
vue-cli-plugin-uni
これら 2 つのパッケージを上書きすると、正常にコンパイルできますが、最後にエラーが発生します
エラーはここにありますが、なぜかわかりません
return reject(Build failed with errors.)

原則として、プロジェクトを変更せずに、hbuilderx のみを変更します

テスト結果、2 つのパッケージを上書きし、このファイルのエラーを変更すると、この問題が解決します

image

1#

vue-cli-plugin-uni だけを置き換えて正常に動作するかテストする
もう一度テストしてみる
webpack.nvue.conf.js ファイルでエラーが発生し、3216 の設定をコピーしてみてください
vue-cli-plugin-hbuilderx/build/webpack.nvue.conf.js
最後に、コンパイルエラーが発生し、ホット更新ができません
ERROR Build failed with errors.

2#

2 つのパッケージを置き換え、他のコンテンツを変更しないようにします
vue-cli-plugin-hbuilderx
vue-cli-plugin-uni
コンパイル結果を確認しようとしています
コンパイルエラーが発生し、エラーメッセージを開くと、次のようになります

image
これをコメントアウトしてください

image
次に、uni の統計のエラーを修正します

image

正常に動作します。この方法は有効であり、新しいバージョンの問題はこれらの 2 つのパッケージに関連しています。uni の統計と webpack の hasError の例外を追加します。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。