1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Vue3+Vite+TS+Eslint 搭建生產(chǎn)項(xiàng)目,踩坑詳記(一)

        共 3471字,需瀏覽 7分鐘

         ·

        2021-09-11 11:43

        最近鬼哥也在使用Vue3.0,項(xiàng)目架構(gòu)也是Vue3.0+vite2.0+Ele UI,剛好發(fā)現(xiàn)這篇寶藏文章。文章一共五篇,推薦大家一起學(xué)習(xí),記得關(guān)注公眾號(hào),把這個(gè)系列學(xué)習(xí)完整,完全掌握這套架構(gòu)。

        說(shuō)干就干,然后就開(kāi)始讀各種文檔,從 0 開(kāi)始,一步一步搭完這個(gè)項(xiàng)目到可以正常開(kāi)發(fā)

        今天是第一篇文章主要是項(xiàng)目初始化和ESLint導(dǎo)入,廢話不多說(shuō),開(kāi)整。

        初始化項(xiàng)目

        按照自己需要的框架選擇就可以了,我這里用的Vue3+TS。初始化完成后的目錄結(jié)構(gòu)如下:

        image.png

        啟動(dòng)項(xiàng)目

        執(zhí)行 npm run dev,大概率會(huì)直接報(bào)錯(cuò),因?yàn)轫?xiàng)目默認(rèn)啟動(dòng)在3000端口,可能會(huì)被拒絕。

        image.png

        解決這個(gè)問(wèn)題,我們需要在根目錄下的 vite.config.ts 文件中修改開(kāi)發(fā)服務(wù)器的配置,手動(dòng)指定端口號(hào)。

        image.png

        修改完成后重新啟動(dòng)項(xiàng)目,就可以訪問(wèn)了。

        image.png

        添加ESLint支持

        安裝ESLint

        • eslint只有開(kāi)發(fā)階段需要,因此添加到開(kāi)發(fā)階段的依賴中即可
        npm install eslint --save-dev

        • 在VS Code中安裝eslint插件,以在開(kāi)發(fā)中自動(dòng)進(jìn)行eslint校驗(yàn)

        配置ESLint

        創(chuàng)建 .eslintrc.js 文件

        添加基礎(chǔ)配置

        module.exports = {
          root: true,
          env: {
            browser: true// browser global variables
            es2021: true// adds all ECMAScript 2021 globals and automatically sets the ecmaVersion parser option to 12.
          },
          parserOptions: {
            ecmaVersion: 12,
          },
        }

        引入規(guī)則

        為了規(guī)范團(tuán)隊(duì)成員代碼格式,以及保持統(tǒng)一的代碼風(fēng)格,項(xiàng)目采用當(dāng)前業(yè)界最火的 Airbnb規(guī)范[1] ,并引入代碼風(fēng)格管理工具 Prettier[2]

        eslint-plugin-vue

        ESLint官方提供的Vue插件,可以檢查 .vue文件中的語(yǔ)法錯(cuò)誤

        npm install eslint-plugin-vue

        // .eslintrc.js
        ...
        extends: [
            'plugin:vue/vue3-recommended' // ++
        ]
        ...

        eslint-config-airbnb-base

        Airbnb基礎(chǔ)規(guī)則的eslint插件

        // npm version > 5
        npx install-peerdeps --dev eslint-config-airbnb-base

        // .eslintrc.js
        ...
        extends: [
            'plugin:vue/vue3-recommended',
            'airbnb-base', // ++
        ],
        ...

        這個(gè)時(shí)候就應(yīng)該可以看到一些項(xiàng)目原有代碼的eslint報(bào)錯(cuò)信息了,如果沒(méi)有的話,可以嘗試重啟編輯器的eslint服務(wù)。

        eslint-plugin-prettier

        本次項(xiàng)目不單獨(dú)引入prettier,而是使用eslint插件將prettier作為eslint規(guī)則執(zhí)行。

        npm install --save-dev eslint-plugin-prettier
        npm install --save-dev --save-exact prettier

        // .eslintrc.js
        ...
        plugins: ['prettier'], // ++
        rules: {
            'prettier/prettier''error'// ++
        },
        ...

        配置到此時(shí),大概率會(huì)遇到 eslint 規(guī)則和 prettier 規(guī)則沖突的情況,比如下圖。eslint告訴我們要使用單引號(hào),但是改為單引號(hào)以后,prettier有告訴我們要使用雙引號(hào)。

        image.png
        image.png

        這時(shí)候就需要另一個(gè)eslint的插件 eslint-config-prettier,這個(gè)插件的作用是禁用所有與格式相關(guān)的eslint規(guī)則,也就是說(shuō)把所有格式相關(guān)的校驗(yàn)都交給 prettier 處理。

        npm install --save-dev eslint-config-prettier

        // .eslintrc.js
        ...
        plugins: ['prettier'],
        extends: [
            'plugin:vue/vue3-recommended',
            'airbnb-base',
            'plugin:prettier/recommended'// ++
        ],
        rules: {
            'prettier/prettier''error',
        },
        ...

        plugin:prettier/recommended 的配置需要注意的是,一定要放在最后。因?yàn)?code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(255, 93, 108);">extends中后引入的規(guī)則會(huì)覆蓋前面的規(guī)則。

        我們還可以在根目錄新建 ``.prettierrc.js文件自定義prettier規(guī)則,保存規(guī)則后,重啟編輯器的eslint`服務(wù)以更新編輯器讀取的配置文件。

        // .prettierrc.js
        module.exports = {
          singleQuotetrue// 使用單引號(hào)
        }

        到此,我們的ESLint基本配置結(jié)束了,后續(xù)需要時(shí)可以對(duì)規(guī)則進(jìn)行調(diào)整。

        這篇文章到這里就結(jié)束了,但是只在開(kāi)發(fā)階段約束代碼風(fēng)格是一件靠自覺(jué)性的是,因?yàn)槲覀冞€需要增強(qiáng)ESLint的約束度。下一篇文章,我們一起研究如果在提交代碼前進(jìn)行ESLint二次校驗(yàn),保證提交到Git的代碼都是符合規(guī)定的~

        原文地址

        https://juejin.cn/post/6982529246480564238


        關(guān)注公眾號(hào)添加鬼哥微信

                                    拉你進(jìn)前端學(xué)習(xí)群一起學(xué)習(xí)

                             

        ?? 看完三件事

        如果你覺(jué)得這篇內(nèi)容對(duì)你挺有啟發(fā),不妨:

        • 點(diǎn)個(gè)【在看】,或者分享轉(zhuǎn)發(fā),讓更多的人也能看到這篇內(nèi)容

        • 點(diǎn)擊↓面關(guān)注我們,一起學(xué)前端

        • 長(zhǎng)按↓面二維碼,添加鬼哥微信,一起學(xué)前端



        瀏覽 173
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产婬乱片A片AAA毛姪片 | 国产刺激出水片 | 日韩欧美在线观看不卡 | 欧美成人三级在线观看 | 欧美一级婬片A片免费播放绣春 | 触手调教女战士奶水狂喷视频 | 欧美午夜精品久久久久免费视 | 色色玖玖 | 免费无遮挡在线观看 | 国产看逼|