<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          我在項目中是這樣配置Vue的

          共 5646字,需瀏覽 12分鐘

           ·

          2020-08-18 01:41

          獨在公司加夜班,行行代碼心甚寒。不知功能何時完,殺了產(chǎn)品來祭天。

          在前面的文章中,我為大家?guī)砹嗽S多Vue 實戰(zhàn)技巧,也得到了大家的許多好評,但中間還是存在著些許漏洞,在此向大家表示歉意。其實在前面那些技巧之外,我們還可以做的更多,讓我們的開發(fā)流程更流暢,開發(fā)體驗更好,項目性能更上一層樓,怎么做呢,我們一起來看看。

          閱讀小編近期的熱門Vue相關(guān)文章,感謝各位掘友和群友支持,每周一,不見不散

          實戰(zhàn)技巧,Vue原來還可以這樣寫 獲贊 2400+

          絕對干貨~!學會這些Vue小技巧,可以早點下班和女神約會了 獲贊 1150+

          前方高能,這是最新的一波Vue實戰(zhàn)技巧,不用則已,一用驚人 獲贊 1000+

          學會使用Vue JSX,一車老干媽都是你的 獲贊600+

          看到賺到!重讀vue2.0風格指南,我整理了這些關(guān)鍵規(guī)則 獲贊 150+

          本文內(nèi)容來源于小編將開源的一個基于vant封裝的開箱即用框架的一部分,本框架內(nèi)部集成了包括:完整項目目錄結(jié)構(gòu), 移動端適配,vant按需加載,mock,靜態(tài)資源壓縮,axios二次封裝,日期工具類,cdn,代碼規(guī)范等內(nèi)容,可以做到下載即使用,無需做任何基礎(chǔ)配置,歡迎大家使用,倉庫地址 https://github.com/snowzijun/vue-vant-base,如果喜歡,麻煩給小編一個star,小編會持續(xù)更新。

          啟用壓縮,讓頁面加載更快

          在我們開發(fā)的時候,為了方便調(diào)試,我們需要使用源碼進行調(diào)試,但在生產(chǎn)環(huán)境,我們追求的更多的是加載更快,體驗更好,這時候我們會將代碼中的空格注釋去掉,對待嗎進行混淆壓縮,只為了讓js,css文件變得更小,加載更快。但只是這樣做是不夠的,我們還可以做得更極致。

          gzipWeb世界中使用的最為廣泛的文件壓縮算法,當前我們使用的大多數(shù)服務(wù)端(比如nginx)和客戶端(比如chrome)都已經(jīng)支持了這個算法,所以如果我們在打包Vue項目的時候,可以直接將所有的靜態(tài)資源壓縮為gzip,就可以極大的減少靜態(tài)資源的大小,提升瀏覽器加載速度,那Vue項目如何配置呢?

          添加vue.config.js 文件

          在新建Vue項目中,默認是沒有vue.config.js文件的,首先你需要在項目根目錄新建一個vue.config.js文件,然后在文件中加入以下代碼

          module.exports = {

          }

          本文后面會多次使用到vue.config.js文件,在后面將不再贅述。

          配置compression-webpack-plugin

          • 安裝 compression-webpack-plugin

            yarn add compression-webpack-plugin -D
          • 配置

            修改vue.config.js文件為以下代碼

            const CompressionWebpackPlugin = require('compression-webpack-plugin')
            const isProd = process.env.NODE_ENV === 'production'
            module.exports = {
            configureWebpack: config => {
            if (isProd) {
            // 配置webpack 壓縮
            config.plugins.push(
            new CompressionWebpackPlugin({
            test: /\.js$|\.html$|\.css$/,
            // 超過4kb壓縮
            threshold: 4096
            })
            )
            }
            }
            }
          • 查看壓縮效果

            在配置上面的壓縮之后,執(zhí)行yarn build命令,會發(fā)現(xiàn)生成的靜態(tài)文件里面新增了后綴為gz的文件

            如果此時將項目部署到已開啟了gzip的服務(wù)器如nginx里面之后,訪問瀏覽器即可看到瀏覽器下載的是已壓縮的文件

          moment變得更小

          使用過moment的同學一定知道,momentlocale語言包特別大,但是我們一般的項目只在國內(nèi)用,也用不到那么多語言,是不是可以去掉呢?這時候你需要使用到webpack.IgnorePlugin

          vue.config.js文件,你需要添加以下代碼

          const webpack = require('webpack')
          module.exports = {
          chainWebpack: config => {
          // 優(yōu)化moment 去掉國際化內(nèi)容
          config
          .plugin('ignore')
          // 忽略/moment/locale下的所有文件
          .use(new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/))
          }
          }

          我們雖然按照上面的方法忽略了包含’./locale/'該字段路徑的文件目錄,但是也使得我們使用的時候不能顯示中文語言了,這時候如果想用某一種語言應(yīng)該怎么辦呢?

          import moment from 'moment'
          //手動引入所需要的語言包
          import 'moment/locale/zh-cn';
          // 指定使用的語言
          moment.locale('zh-cn');

          當然小編更建議在項目中使用更輕量級的day.js代替moment

          生產(chǎn)環(huán)境刪除console.log

          開發(fā)環(huán)境為了調(diào)試,會添加大量的console.log,但如果console.log提交到生產(chǎn)環(huán)境里面,不僅僅會影響到代碼執(zhí)行性能,而且可能會泄露一些核心數(shù)據(jù),所以我們更希望的是在生產(chǎn)環(huán)境,將所有的console.log清除掉,怎么做呢?

          安裝插件

          需要安裝babel-plugin-transform-remove-console插件

          yarn add babel-plugin-transform-remove-console -D

          配置babel.config.js

          打開babel.config.js文件,然后在文件內(nèi)添加

          // 所有生產(chǎn)環(huán)境
          const prodPlugin = []

          if (process.env.NODE_ENV === 'production') {

          // 如果是生產(chǎn)環(huán)境,則自動清理掉打印的日志,但保留error 與 warn
          prodPlugin.push([
          'transform-remove-console',
          {
          exclude: ['error', 'warn']
          }
          ])
          }

          module.exports = {
          plugins: [
          ...prodPlugin
          ]
          }

          開啟eslint,stylelint

          看到這一條,有些同學就有點受不了想退出了,配置這個不是自己給自己找不自在嗎?在團隊開發(fā)中,配置這些還是很有用的,制約團隊中的每個人都按照標準來開發(fā)功能,這樣至少大家寫的代碼不至于相互看不懂(我深受不規(guī)范代碼的折磨?。?/p>

          本節(jié)所有代碼在github倉庫中已上傳,完整代碼請查看 https://github.com/snowzijun/vue-vant-base

          安裝依賴

          在配置這些lint之前,你需要安裝這些插件

          • @vue/cli-plugin-eslint
          • @vue/eslint-config-prettier
          • babel-eslint
          • eslint
          • eslint-plugin-babel
          • eslint-plugin-prettier
          • eslint-plugin-vue
          • husky
          • lint-staged
          • prettier
          • stylelint
          • stylelint-config-recess-order
          • stylelint-config-standard
          • stylelint-prettier
          • stylelint-scss

          同時還需要給vscode以下插件

          • eslint
          • stylelint
          • Prettier - Code formatter

          配置vscode

          vscodesetting文件里面添加以下代碼

          "eslint.enable":true,
          "eslint.options": {
          "extensions":[
          ".js",
          ".vue",
          ".ts",
          ".tsx"
          ]
          },
          "eslint.validate": [
          "javascript",
          "javascriptreact",
          "typescript",
          "typescriptreact"
          ],
          "css.validate": true,
          "scss.validate": true,
          "less.validate": true,
          "editor.codeActionsOnSave": {
          "source.fixAll": true
          },

          配置eslint

          首先在項目根目錄下面添加 .eslintrc.js.eslintignore文件

          .eslintrc.js文件內(nèi)添加以下內(nèi)容

          // 縮略版
          module.exports = {
          root: true,
          globals: {
          process: true
          },
          parserOptions: {
          parser: 'babel-eslint',
          sourceType: 'module'
          },
          env: {
          browser: true,
          node: true,
          es6: true
          },
          extends: ['plugin:vue/recommended', 'eslint:recommended'],
          plugins: ['babel', 'prettier'],
          rules:{
          // 校驗規(guī)則此處略
          }
          }

          .eslintignore文件中添加以下代碼

          .DS_Store
          node_modules
          /dist

          # local env files
          .env.local
          .env.*.local

          # Log files
          npm-debug.log*
          yarn-debug.log*
          yarn-error.log*

          # Editor directories and files
          .idea
          .vscode
          *.suo
          *.ntvs*
          *.njsproj
          *.sln
          *.sw?

          配置完之后,在package.jsonscript里面添加

          "eslint": "vue-cli-service lint"

          然后執(zhí)行yarn eslint就可以對代碼進行格式化,當然vscode也會在你保存文件的時候校驗一次

          配置stylelint

          限制jsvue是不夠的,還需要限制以下style,感覺這是自己給自己無限挖坑的舉措,但是這東西越用越爽,一起來看看

          首先在項目根目錄下面新建.stylelintrc.js.stylelintignore文件

          .stylelintrc.js文件中添加以下內(nèi)容

          module.exports = {
          extends: ["stylelint-config-standard","stylelint-config-recess-order"],
          "plugins": [
          "stylelint-scss"
          ],
          rules: {
          // 校驗規(guī)則略
          }
          }

          .stylelintignore文件內(nèi)容與.eslintignore文件內(nèi)容一致

          配置完之后,在package.jsonscript里面添加

          "stylelint": "stylelint src/**/*.{html,vue,css,sass,scss} --fix",

          然后執(zhí)行yarn stylelint就可以對樣式進行格式化,當然vscode也會在你保存文件的時候校驗一次

          配置husky

          上面配置完之后,寫代碼時候vscode會自動校驗格式化代碼, 但就怕有人用其他編輯器沒有配置插件,將未校驗的代碼提交到倉庫里面,導致所有人的代碼都爆紅,這時候就需要使用husky在提交代碼時候進行校驗。

          git提交代碼時候,會觸發(fā)一系列hook鉤子函數(shù),而husky就是一個Git hooks工具。lint-staged是一個在git暫存文件上運行l(wèi)inters的工具,為什么要用這個工具呢,因為我們在提交代碼的時候,只需要對已經(jīng)修改過的文件進行校驗,不然檢查所有文件,比較浪費時間。那我們改怎么配置呢?

          你只需要在package.json文件里面添加以下代碼

            "husky": {
          "hooks": {
          "pre-commit": "lint-staged",
          "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
          }
          },
          "lint-staged": {
          "*.{js,vue}": [
          "vue-cli-service lint",
          "git add -A"
          ],
          "*.{html,vue,css,sass,scss}": [
          "yarn stylelint"
          ]
          }

          這時候你如果執(zhí)行git commit -m '提交描述'的時候,會發(fā)現(xiàn)提交之前會調(diào)用eslintstylelint進行代碼校驗,校驗失敗無法提交

          結(jié)語

          不要吹滅你的靈感和你的想象力; 不要成為你的模型的奴隸。——文森特?梵高



          》》面試官都在用的題庫,快來看看《《



          瀏覽 46
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一级a免费在线观看 | 久久青青草香蕉手机视频在线 | 黄片网站在线观看 | 亚洲小早川无码在线播放 | 欧美一级二级三级 |