1. ホーム
  2. ビュー

未定義のプロパティ 'replace' が読み込めない [バグ修正] 。

2022-02-25 12:22:43
<パス

未定義のプロパティ 'replace' が読み込めない [バグフィックス] 。

本日より最新の vue-cli プロジェクト作成時に、カスタムコンフィギュレーションを選択したため、結果的にプロジェクトをビルドした後に起動した vue add element-plus は、プロジェクトを起動するとソースコードエラーを出したので、わからなくなりソースコードの解析を開始しました

  api.afterInvoke(() => {
    const { EOL } = require('os')
    const fs = require('fs')
    const contentMain = fs.readFileSync(api.resolve(api.entryFile), { encoding: 'utf-8' })
    const lines = contentMain.split(/\r?\n/g)

    const renderIndex = lines.findIndex(line => line.match(/createApp\(App\)(\.use\(\w*\))*\.mount\(['"]#app['"]\)/))
    const renderContent = lines[renderIndex]
    lines[renderIndex] = `const app = createApp(App)`
    lines[renderIndex + 1] = `installElementPlus(app)`
    lines[renderIndex + 2] = renderContent.replace('createApp\(App\)','app')

    fs.writeFileSync(api.resolve(api.entryFile), lines.join(EOL), { encoding: 'utf-8' })
  })


以下は、私が変更した後のソースコードです。

そして、これは main.js createApp(App).use(store).use(router).mount("#app"); vueの通常の書式構文では、自動的に mount("#app") 私は確信している、別の構成で状況をテストしていない、唯一のこの波と非常に良好ではないビューと言うために、オンラインでこのエラーは見つけるのは簡単ではありませんので、理由を取得し、直接ソースコードを見てどのようなエラーを満たしています。

公式がシングルクォート好きなのか知らんが、ルール改正してください

そして最後に、修正コードの詳細です。

// . /node_modules/vue-cli-plugin-element-plus/generator/index.js:45:45 bug fix
// edit line 41
// error code
    const renderIndex = lines.findIndex(line => line.match(/createApp\(App\)(\.use\(\w*\))*\.mount\('#app'\)/))
// fix code
    const renderIndex = lines.findIndex(line => line.match(/createApp\(App\)(\.use\(\w*\))*\.mount\(['"]#app['"]\)/))