嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

使用 VSCode 開(kāi)發(fā) Gatsby 項(xiàng)目配置

2020-6-3    seo達(dá)人

初始化

使用 https://github.com/XYShaoKang... 作為基礎(chǔ)模板

gatsby new gatsby-project-config https://github.com/XYShaoKang/gatsby-hello-world

Prettier 配置

安裝 VSCode 擴(kuò)展

按 Ctrl + P (MAC 下: Cmd + P) 輸入以下命令,按回車(chē)安裝


ext install esbenp.prettier-vscode

安裝依賴

yarn add -D prettier

Prettier 配置文件.prettierrc.js

// .prettierrc.js

module.exports = {

 trailingComma: 'es5',

 tabWidth: 2,

 semi: false,

 singleQuote: true,

 endOfLine: 'lf',

 printWidth: 50,

 arrowParens: 'avoid',

}

ESLint 配置

安裝 VSCode 擴(kuò)展

按 Ctrl + P (MAC 下: Cmd + P) 輸入以下命令,按回車(chē)安裝


ext install dbaeumer.vscode-eslint

安裝 ESLint 依賴

yarn add -D eslint babel-eslint eslint-config-google eslint-plugin-react eslint-plugin-filenames

ESLint 配置文件.eslintrc.js

使用官方倉(cāng)庫(kù)的配置,之后在根據(jù)需要修改


// https://github.com/gatsbyjs/gatsby/blob/master/.eslintrc.js

// .eslintrc.js

module.exports = {

 parser: 'babel-eslint',

 extends: [

   'google',

   'eslint:recommended',

   'plugin:react/recommended',

 ],

 plugins: ['react', 'filenames'],

 parserOptions: {

   ecmaVersion: 2016,

   sourceType: 'module',

   ecmaFeatures: {

     jsx: true,

   },

 },

 env: {

   browser: true,

   es6: true,

   node: true,

   jest: true,

 },

 globals: {

   before: true,

   after: true,

   spyOn: true,

   __PATH_PREFIX__: true,

   __BASE_PATH__: true,

   __ASSET_PREFIX__: true,

 },

 rules: {

   'arrow-body-style': [

     'error',

     'as-needed',

     { requireReturnForObjectLiteral: true },

   ],

   'no-unused-expressions': [

     'error',

     {

       allowTaggedTemplates: true,

     },

   ],

   'consistent-return': ['error'],

   'filenames/match-regex': [

     'error',

     '^[a-z-\\d\\.]+$',

     true,

   ],

   'no-console': 'off',

   'no-inner-declarations': 'off',

   quotes: ['error', 'backtick'],

   'react/display-name': 'off',

   'react/jsx-key': 'warn',

   'react/no-unescaped-entities': 'off',

   'react/prop-types': 'off',

   'require-jsdoc': 'off',

   'valid-jsdoc': 'off',

 },

 settings: {

   react: {

     version: '16.4.2',

   },

 },

}

解決 Prettier ESLint 規(guī)則沖突

推薦配置


安裝依賴


yarn add -D eslint-config-prettier eslint-plugin-prettier

在.eslintrc.js中的extends添加'plugin:prettier/recommended'


module.exports = {

 extends: ['plugin:prettier/recommended'],

}

VSCode 中 Prettier 和 ESLint 協(xié)作

方式一:使用 ESLint 擴(kuò)展來(lái)格式化代碼

配置.vscode/settings.json


// .vscode/settings.json

{

 "eslint.format.enable": true,

 "[javascript]": {

   "editor.defaultFormatter": "dbaeumer.vscode-eslint"

 },

 "[javascriptreact]": {

   "editor.defaultFormatter": "dbaeumer.vscode-eslint"

 }

}

ESLint 擴(kuò)展會(huì)默認(rèn)忽略.開(kāi)頭的文件,比如.eslintrc.js

如果需要格式化.開(kāi)頭的文件,可以在.eslintignore中添加一個(gè)否定忽略來(lái)啟用對(duì)應(yīng)文件的格式化功能.


!.eslintrc.js

或者直接使用!.*,這樣可以開(kāi)啟所有點(diǎn)文件的格式化功能


方式二:使用 Prettier 擴(kuò)展來(lái)格式化代碼

在版prettier-vscode@v5.0.0中已經(jīng)刪除了直接對(duì)linter的集成,所以版沒(méi)法像之前那樣,通過(guò)prettier-eslint來(lái)集成ESLint的修復(fù)了(一定要這樣用的話,可以通過(guò)降級(jí)到prettier-vscode@4來(lái)使用了).如果要使用Prettier來(lái)格式化的話,就只能按照官方指南中的說(shuō)的集成方法,讓Prettier來(lái)處理格式,通過(guò)配置在保存時(shí)使用ESlint自動(dòng)修復(fù)代碼.只是這樣必須要保存文件時(shí),才能觸發(fā)ESLint的修復(fù)了.


配置 VSCode 使用 Prettier 來(lái)格式化 js 和 jsx 文件

在項(xiàng)目中新建文件.vscode/settings.json


// .vscode/settings.json

{

 "[javascript]": {

   "editor.defaultFormatter": "esbenp.prettier-vscode"

 },

 "[javascriptreact]": {

   "editor.defaultFormatter": "esbenp.prettier-vscode"

 },

 "editor.codeActionsOnSave": {

   "source.fixAll.eslint": true

 }

}

說(shuō)實(shí)話這個(gè)體驗(yàn)很糟糕,之前直接一鍵格式化代碼并且修復(fù) ESLint 錯(cuò)誤,可以對(duì)比格式化之前和格式化之后的代碼,如果感覺(jué)不對(duì)可以直接撤銷(xiāo)更改就好了.現(xiàn)在必須要通過(guò)保存,才能觸發(fā)修復(fù) ESlint 錯(cuò)誤.而在開(kāi)發(fā)過(guò)程中,通過(guò)監(jiān)聽(tīng)文件改變來(lái)觸發(fā)熱加載或者重新編譯是很常見(jiàn)的操作.這樣之后每次想要去修復(fù) ESLint 錯(cuò)誤,還是只是想看看修復(fù)錯(cuò)誤之后的樣子,都必須要去觸發(fā)熱加載或重新編譯,每次操作的成本就太高了.

我更推薦第一種方式使用 ESLint 擴(kuò)展來(lái)對(duì)代碼進(jìn)行格式化.


調(diào)試 Gatsby 配置

調(diào)試構(gòu)建過(guò)程

添加配置文件.vscode/launch.json


// .vscode/launch.json

{

 // 使用 IntelliSense 了解相關(guān)屬性。

 // 懸停以查看現(xiàn)有屬性的描述。

 // 欲了解更多信息,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387

 "version": "0.2.0",

 "configurations": [

   {

     "name": "Gatsby develop",

     "type": "node",

     "request": "launch",

     "protocol": "inspector",

     "program": "${workspaceRoot}/node_modules/gatsby/dist/bin/gatsby",

     "args": ["develop"],

     "stopOnEntry": false,

     "runtimeArgs": ["--nolazy"],

     "sourceMaps": false,

     "outputCapture": "std"

   }

 ]

}

的gatsby@2.22.*版本中調(diào)試不能進(jìn)到斷點(diǎn),解決辦法是降級(jí)到2.21.*,yarn add gatsby@2.21.40,等待官方修復(fù)再使用版本的

調(diào)試客戶端

需要安裝 Debugger for Chrome 擴(kuò)展


ext install msjsdiag.debugger-for-chrome

添加配置文件.vscode/launch.json


// .vscode/launch.json

{

 // 使用 IntelliSense 了解相關(guān)屬性。

 // 懸停以查看現(xiàn)有屬性的描述。

 // 欲了解更多信息,請(qǐng)?jiān)L問(wèn): https://go.microsoft.com/fwlink/?linkid=830387

 "version": "0.2.0",

 "configurations": [

   {

     "type": "chrome",

     "request": "launch",

     "name": "Gatsby Client Debug",

     "url": "http://localhost:8000",

     "webRoot": "${workspaceFolder}"

   }

 ]

}

先啟動(dòng) Gatsby,yarn develop,然后按 F5 開(kāi)始調(diào)試.

日歷

鏈接

個(gè)人資料

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 免费日韩成人| 久久中文字幕一区| 国产一区二区三区在线观看免费视频 | 欧美综合77777色婷婷| 亚洲欧美日韩直播| 亚洲欧美日韩区| 久久精品1区| 欧美大片免费| 亚洲美女一区| 欧美一区在线看| 麻豆9191精品国产| 欧美日韩精品一区二区天天拍小说| 欧美巨乳在线| 国产精品一区二区视频| 黑人一区二区三区四区五区| 亚洲高清在线| 亚洲私人影院在线观看| 欧美午夜精品一区| 国产伦精品一区二区三区免费| 国产日韩专区在线| 亚洲国产精品女人久久久| 99精品99| 久久精品一区二区国产| 亚洲国产网站| 欧美日韩在线观看视频| 亚洲理论在线观看| 亚洲一区二区免费| 久久免费视频这里只有精品| 亚洲激情在线播放| 亚洲深夜av| 免费观看成人www动漫视频| 国产精品进线69影院| 国模精品一区二区三区| 夜夜嗨av一区二区三区中文字幕| 久久久精品网| 新片速递亚洲合集欧美合集| 亚洲国产精品一区制服丝袜 | 久久久久久久国产| 欧美国产日韩一区| 欧美亚洲在线视频| 欧美三区在线视频| 亚洲国产成人tv| 亚洲黄色免费| 欧美暴力喷水在线| 亚洲男人第一av网站| 日韩午夜剧场| 欧美福利在线| 伊人成人网在线看| 久久久久久伊人| 亚洲综合国产| 国产精品久久| 亚洲一区二区影院| 亚洲免费电影在线| 欧美精品乱码久久久久久按摩| 在线天堂一区av电影| 日韩视频中文字幕| 欧美福利在线| 久久一区视频| 亚洲国产美女久久久久| 欧美大片一区二区三区| 久久露脸国产精品| 尤物在线观看一区| 欧美阿v一级看视频| 久久先锋影音| 亚洲毛片一区二区| 欧美在线不卡| 久久中文在线| 亚洲国产精品热久久| 久久久人成影片一区二区三区| 亚洲欧美日韩一区二区在线| 国产精品毛片a∨一区二区三区| 亚洲一区免费视频| 中文在线不卡视频| 国产手机视频一区二区| 久久久久在线观看| 久久综合给合久久狠狠狠97色69| 亚洲国产一区二区精品专区| 欧美激情麻豆| 欧美日韩精品免费观看视一区二区| 日韩视频一区二区在线观看 | 欧美激情国产日韩精品一区18| 亚洲第一二三四五区| 欧美不卡视频一区| 欧美日韩国产一级| 亚洲欧美日韩一区二区三区在线观看| 亚洲一区二区三区三| 国内一区二区三区在线视频| 午夜精品久久久久久久99樱桃 | 久久精品国产v日韩v亚洲 | 国产亚洲精品久久久久婷婷瑜伽| 久久精品99国产精品| 久久激情婷婷| 亚洲精品一区二| 久久天堂av综合合色| 久久资源av| 亚洲欧洲av一区二区三区久久| 久久久国产91| av成人黄色| 久久高清一区| 国产精品99久久久久久www| 亚洲天堂第二页| 精品不卡一区| 亚洲一卡二卡三卡四卡五卡| 悠悠资源网亚洲青| 一本久久青青| 亚洲第一伊人| 亚洲一区视频在线观看视频| 亚洲欧洲日本专区| 亚洲欧美日韩一区二区三区在线观看 | 亚洲欧洲日本专区| 国产欧美亚洲一区| 最新中文字幕亚洲| 国产视频一区免费看| 日韩亚洲欧美在线观看| 一本久久a久久免费精品不卡| 久久蜜桃精品| 国产精品久久波多野结衣| 欧美成人中文| 国产资源精品在线观看| 亚洲人成网站999久久久综合| 国产一区三区三区| 亚洲夜晚福利在线观看| 一本一本大道香蕉久在线精品| 久久精品国内一区二区三区| 亚洲一区观看| 久久精品国产一区二区三区免费看 | 亚洲午夜在线视频| 亚洲精选在线观看| 久久精品在这里| 欧美亚洲免费电影| 国产精品成人一区| 亚洲黄色小视频| 一区二区三区在线高清| 亚洲视频视频在线| 日韩亚洲欧美成人一区| 老司机免费视频一区二区| 久久免费国产精品1| 国产欧美日韩精品a在线观看| 在线视频日本亚洲性| 一区二区久久| 欧美啪啪一区| 亚洲最新视频在线| 亚洲午夜久久久久久久久电影网| 狠狠色丁香久久婷婷综合丁香| 久久av资源网| 国产精品综合不卡av| 亚洲一区二区毛片| 亚洲一区二区三区激情| 欧美手机在线视频| 亚洲私人影院| 欧美亚洲一区二区在线| 国产女主播一区| 欧美亚洲综合网| 女女同性精品视频| 亚洲开发第一视频在线播放| 欧美激情一区三区| 一区二区不卡在线视频 午夜欧美不卡在 | 一区二区精品在线| 国产精品va在线播放| 宅男噜噜噜66国产日韩在线观看| 小黄鸭精品aⅴ导航网站入口| 国产美女精品人人做人人爽| 国产伦精品一区二区三区高清| 裸体女人亚洲精品一区| 黑人一区二区三区四区五区| 免费在线看成人av| 亚洲理伦在线| 欧美在线三区| 亚洲日本va午夜在线影院| 欧美精品系列| 亚洲欧美色一区| 欧美大片在线观看一区| 亚洲图片欧美午夜| 韩国av一区二区三区在线观看| 亚洲一区二区成人| 久久一综合视频| 亚洲一区国产精品| 在线观看免费视频综合| 欧美日韩中国免费专区在线看| 亚洲免费视频一区二区| 久久综合给合久久狠狠色| 99这里有精品| …久久精品99久久香蕉国产| 亚洲自拍偷拍网址| 99精品欧美一区| 欧美不卡在线| 亚洲曰本av电影| 欧美激情一区二区久久久| 久久久久91| 国产精品美女主播| 中文日韩欧美| 亚洲男女自偷自拍| 欧美日本在线视频| 欧美顶级大胆免费视频| 国产又爽又黄的激情精品视频| 一本综合久久| 久久嫩草精品久久久久| 久久国产精品久久国产精品| 国产精品自拍在线| 亚洲一区精品电影|