HBuilderX の HBuilderX.4.15.2024050802\HBuilderX\plugins\uniapp-cli パスを開く
HBuilderX.4.15.2024050802\HBuilderX\plugins\uniapp-cli\bin\uniapp-cli.js フォルダを見つける📂すべてはここから始まります
上記のファイルを見つけてログを出力する
プリントがあることがわかりましたので、間違った場所を見つけていません
そして、コードをたどると、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 パッケージが参照され、このパッケージがエクスポートされます
つまり、このファイルは @vue/cli-service/lib/Service.js です
run を見つける
その中で、uni-build コマンドを初期化しています
使用されたパッケージを印刷する
上記のビルトインを除いて、他のすべては対応するパッケージを参照しています。したがって、これらのパッケージを参照します
テスト結果、@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 ファイル全体を上書きしてみて、テストしてみますが、コンパイルはまだ通りません
このファイルかもしれません
vue-cli-plugin-builders
vue-cli-plugin-uni
これら 2 つのパッケージを上書きすると、正常にコンパイルできますが、最後にエラーが発生します
エラーはここにありますが、なぜかわかりません
return reject(Build failed with errors.
)
原則として、プロジェクトを変更せずに、hbuilderx のみを変更します
テスト結果、2 つのパッケージを上書きし、このファイルのエラーを変更すると、この問題が解決します
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
コンパイル結果を確認しようとしています
コンパイルエラーが発生し、エラーメッセージを開くと、次のようになります
これをコメントアウトしてください
次に、uni の統計のエラーを修正します
正常に動作します。この方法は有効であり、新しいバージョンの問題はこれらの 2 つのパッケージに関連しています。uni の統計と webpack の hasError の例外を追加します。