creact-react-appベースのwebpack 4アップグレードの道
2165 ワード
Webpack 4のアップグレードチュートリアルはネット上には本当にたくさんあります.私もチュートリアルに従ってアップグレードしていますが、creact-react-app足場を使って構築したプロジェクトでアップグレードすると、他のバグが存在することに気づきました.ここでは、調査と解決の記録をします.
開発環境の構成 webpackをwebpackV 4 にアップグレードプロジェクトrunを 最初のエラー が発生します.の過程で多くの奇妙な誤報に遭遇する
更新後のpackjsonはProxyをオブジェクトとする書き方をサポートせず、文字列形式に変更
環境構成の生成
1.new webpackを捨てる.optimize.UglifyJsPlugin、productionモードでwebpackはsplitChunksとminimizeを提供して圧縮します
2.webpack-manifest-pluginを^2.0.0-rcにアップグレードします.2
3.extract-text-webpack-pluginをmini-css-extract-pluginに置き換える
公式サイトの設定
これでcreact-react-app足場のwebpack 4アップグレードが完了したと思います
開発環境の構成
Plugin could not be registered at 'html-webpack-plugin-before-html-processing'. Hook was not found.
BREAKING CHANGE:
There need to exist a hook at 'this.hooks'. To create a compatiblity layer for this hook, hook into 'this._pluginCompat'.
webpack-cli
webpack-dev-server
html-webpack-plugin
react-dev-utils
file-loader
url-loader
Module build failed: TypeError: Cannot read property 'context' of undefined
, loader
DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
at ModuleScopePlugin.apply
react-dev-utils extract-text-webpack-plugin
this.htmlWebpackPlugin.getHooks is not a function
HtmlWebpackPlugin InterpolateHtmlPlugin , InterpolateHtmlPlugin, PUBLIC_URL
new HtmlWebpackPlugin({
inject: true,
template: paths.appHtml,
}),
new InterpolateHtmlPlugin(HtmlWebpackPlugin, {
PUBLIC_URL: publicUrl,
}),
Object proxy configuration is superseded by src/setupProxy.js To check
if action is required, look for the proxy key in package.json and
follow this table:
更新後のpackjsonはProxyをオブジェクトとする書き方をサポートせず、文字列形式に変更
missingDeps.some not a function
react-dev-utils 6
this.htmlWebpackPlugin.getHooks is not a function
html-webpack-plugin 4.0.0.alpha-2
環境構成の生成
1.new webpackを捨てる.optimize.UglifyJsPlugin、productionモードでwebpackはsplitChunksとminimizeを提供して圧縮します
2.webpack-manifest-pluginを^2.0.0-rcにアップグレードします.2
3.extract-text-webpack-pluginをmini-css-extract-pluginに置き換える
公式サイトの設定
これでcreact-react-app足場のwebpack 4アップグレードが完了したと思います