pandanoir / gakushu

technical topics that I wanna know
0 stars 0 forks source link

ツール関連をまとめる #7

Open pandanoir opened 4 years ago

pandanoir commented 4 years ago

Webpack、Rollup、TypeScript(tsconfig.json)、ESLint、Prettierとかドキュメントを読んでまとめる

webpack dev serverも

pandanoir commented 4 years ago

npm i --save prettier eslint npx eslint --init するとうまくやってくれる

pandanoir commented 4 years ago

eslint-plugin-prettierを使うときはESLintにコード整形の設定を書かない

pandanoir commented 4 years ago

ギモン:

.eslintrc.jsのextendsに

   'plugin:react/recommended',
    'plugin:prettier/recommended',
    'prettier/react',

みたいに書くのはなぜ?(plugin:react/recommendedとprettier/reactが両方あるのはなぜ?)

answer

plugin:react/recommendedはeslint-plugin-reactで必要。で、prettier/reactはどうやらeslint-config-prettierが無効化したあとに設定するためっぽい?

pandanoir commented 4 years ago

https://qiita.com/ikngtty/items/4df2e13d2fa1c4c47528

Code -> prettier -> eslint --fix -> formatted codeという流れっぽい

pandanoir commented 4 years ago

eslintrcについて

extendsのたとえばplugin:react/recommendedはeslint-plugin-react内のrecommendedを使うという意味。prettier/reactはよくわかんない。prettierで無効化したあとに有効化するやつらしいけど、eslint-config-prettierの独自構文に見える。 →どうやら、eslint-plugin-prettierがサポートしているものに関してはprettier/fooとして指定できるらしい。逆に他のものはどうすればいいんだ…

pandanoir commented 4 years ago
extends: {
  "eslint:recommended",
  "plugin:@typescript-eslint/recommended"
  "plugin:react/recommended"
  "prettier",
  "prettier/@typescript-eslint",
  "prettier/react",
}

こんな感じ。

pandanoir commented 4 years ago
pandanoir commented 4 years ago

https://webpack.js.org/plugins/terser-webpack-plugin/

webpackのproduction build時にライセンスコメントが削除される問題はTerserPluginのextractCommentsを設定すれば回避できる

pandanoir commented 4 years ago

Babel

ES2018→ES5のようなトランスパイラ。前身は6to5。

pandanoir commented 4 years ago

Babelはポリフィルをいい感じにやってくれたりするけど、TypeScriptはシンタックスをES5にするだけ。つまりアロー関数とかは直してくれるが、Mapとかのポリフィルを入れてくれるわけじゃない。

pandanoir commented 3 years ago

まあざっくりこう。つまり、TSで書く限り、ポリフィルいらないなら babel-loader は不要と思って良さそう。もちろん、Babel でトランスパイルが必要な構文を使いたいケースは別だけど、そもそもそういうケース自体そんなになくないか?