Open pandanoir opened 4 years ago
npm i --save prettier eslint npx eslint --init するとうまくやってくれる
eslint-plugin-prettierを使うときはESLintにコード整形の設定を書かない
.eslintrc.jsのextendsに
'plugin:react/recommended',
'plugin:prettier/recommended',
'prettier/react',
みたいに書くのはなぜ?(plugin:react/recommendedとprettier/reactが両方あるのはなぜ?)
plugin:react/recommendedはeslint-plugin-reactで必要。で、prettier/reactはどうやらeslint-config-prettierが無効化したあとに設定するためっぽい?
https://qiita.com/ikngtty/items/4df2e13d2fa1c4c47528
Code -> prettier -> eslint --fix -> formatted codeという流れっぽい
eslint-plugin-
は省略できる。独自ルールが追加される場合はここで指定する必要がある。extendsのたとえばplugin:react/recommended
はeslint-plugin-react内のrecommendedを使うという意味。prettier/react
はよくわかんない。prettierで無効化したあとに有効化するやつらしいけど、eslint-config-prettierの独自構文に見える。
→どうやら、eslint-plugin-prettierがサポートしているものに関してはprettier/foo
として指定できるらしい。逆に他のものはどうすればいいんだ…
extends: {
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
"plugin:react/recommended"
"prettier",
"prettier/@typescript-eslint",
"prettier/react",
}
こんな感じ。
webpack
コマンドそのものっぽいんだけどよくわからん。v4でcliと本体を分離したため必要。https://webpack.js.org/plugins/terser-webpack-plugin/
webpackのproduction build時にライセンスコメントが削除される問題はTerserPluginのextractCommentsを設定すれば回避できる
ES2018→ES5のようなトランスパイラ。前身は6to5。
@babel/preset-env
なんかpluginsの設定をいい感じにまとめてくれてるやつ。これ入れときゃいいだろみたいなの。
babel-preset-
は省略できるが、@babel/preset-env
は略せないので"presets": ["@babel/preset-env"]
と指定。@babel/plugin-transform-runtime
global環境を汚染せずにpolyfillが使えるやつBabelはポリフィルをいい感じにやってくれたりするけど、TypeScriptはシンタックスをES5にするだけ。つまりアロー関数とかは直してくれるが、Mapとかのポリフィルを入れてくれるわけじゃない。
まあざっくりこう。つまり、TSで書く限り、ポリフィルいらないなら babel-loader は不要と思って良さそう。もちろん、Babel でトランスパイルが必要な構文を使いたいケースは別だけど、そもそもそういうケース自体そんなになくないか?
Webpack、Rollup、TypeScript(tsconfig.json)、ESLint、Prettierとかドキュメントを読んでまとめる
webpack dev serverも