GitHubのSecurity AlertをOnにしていたら以下のようなAlertがあがってきました。
CVE-2018-14732 More information low severity Vulnerable versions: < 3.1.11 Patched version: 3.1.11 An issue was discovered in lib/Server.js in webpack-dev-server before 3.1.11. Attackers are able to steal developer's code because the origin of requests is not checked by the WebSocket server, which is used for HMR (Hot Module Replacement). Anyone can receive the HMR message sent by the WebSocket server via a ws://127.0.0.1:8080/ connection from any origin.
webpacker3系はwebpack3系のラッパーで、webpack3系はwebpack-dev-server2系に依存しています。そして、webpack-dev-server2系に関する脆弱性のようです。
気持ち的にはさっさとwebpack4系にしたかったので、webpacker4系の安定版を待たずにRCの4系を使ってみようと思います。
CHANGELOGはここです。
https://github.com/rails/webpacker/blob/master/CHANGELOG.md
とりあえずサクッとバージョンだけあげます。
Gemfile
1- gem 'webpacker' 2+ gem 'webpacker', '>= 4.0.0.rc.2'
package.json
1- "@rails/webpacker": "^3.5.5", 2+ "@rails/webpacker": "https://github.com/rails/webpacker",
binstubが変わっているようなので最新のもので再生成します。
1bin/rails webpacker:binstubs
後で書きますが、babelやpostcssの設定ファイルのフォーマットが変わっているのでこちらも再生成します。
1bin/rails webpacker:install
今使っている3.5系からの差分をCHANGELOG見ながら読みましたが、このくらいでしょうか。
さよなら・・・。@applyが仕様から落ちたのは本当に痛いです。なので一旦、postcss-nextを使い続けるようにしました。
そのうち外します。
エントリポイントであるJSから呼んだCSSをファイル展開せず、分割されたままheadに動的に埋め込むようにしたということでしょうか。
https://github.com/rails/webpacker/pull/1625
webpacker.ymlに以下の記載をすることで設定ができるようです。
1 extract_css: true
trueにすればこれまでと同じ挙動をする模様です。
babel.config.jsとpostcss.config.jsになりました。
https://github.com/rails/webpacker/pull/1822/files
webpacker4系になれば少しは薄いラッパーになるのかなと思っていましたが、そうでもないようです。
webpackを自分で入れる運用にするべきか迷っていましたが、その気持ちが強くなりました。