Ответ 1
Сообщение об устаревании:
DeprecationWarning: Tapable.apply устарела. Звоните применять на плагин прямо вместо
DeprecationWarning: Tapable.plugin устарела..hooks
этого используйте новый API на.hooks
Вот краткое резюме для всех, кто сталкивался с этим сообщением.
Что это за сообщение?
Webpack 4 использует новую систему плагинов и не поддерживает предыдущие API. Есть 2 новых предупреждения:
DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead DeprecationWarning: Tapable.plugin is deprecated. Use new API on '.hooks' instead
Это предупреждения. Они выводятся на консоль, чтобы предупредить наших пользователей о том, что они используют устаревший API и должны перейти на самый новый.
Насколько плохи эти предупреждения?
Это только текстовая информация, а не ошибки. Если вы видите
DeprecationWarning
вы можете игнорировать его, пока вы не должны обновить до следующей версии WebPack.
Так что вы ничего не должны или не должны делать с этим.
Кроме этого, я надеюсь, что вы получаете сообщение об ошибке:
/tmp/my-project> npm run dev
> [email protected] dev /tmp/my-project/my-project
> node build/dev-server.js
> Starting dev server...
(node:29408) DeprecationWarning: Tapable.plugin is deprecated. Use new API on '.hooks' instead
(node:29408) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead
/tmp/my-project/node_modules/html-webpack-plugin/lib/compiler.js:81
var outputName = compilation.mainTemplate.applyPluginsWaterfall('asset-path', outputOptions.filename, {
^
TypeError: compilation.mainTemplate.applyPluginsWaterfall is not a function
at /tmp/my-project/node_modules/html-webpack-plugin/lib/compiler.js:81:51
at compile (/tmp/my-project/node_modules/webpack/lib/Compiler.js:242:11)
at hooks.afterCompile.callAsync.err (/tmp/my-project/node_modules/webpack/lib/Compiler.js:487:14)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/tmp/my-project/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:15:1)
at AsyncSeriesHook.lazyCompileHook [as _callAsync] (/tmp/my-project/node_modules/tapable/lib/Hook.js:35:21)
at compilation.seal.err (/tmp/my-project/node_modules/webpack/lib/Compiler.js:484:30)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/tmp/my-project/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:6:1)
at AsyncSeriesHook.lazyCompileHook [as _callAsync] (/tmp/my-project/node_modules/tapable/lib/Hook.js:35:21)
at hooks.optimizeAssets.callAsync.err (/tmp/my-project/node_modules/webpack/lib/Compilation.js:966:35)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/tmp/my-project/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:6:1)
at AsyncSeriesHook.lazyCompileHook [as _callAsync] (/tmp/my-project/node_modules/tapable/lib/Hook.js:35:21)
at hooks.optimizeChunkAssets.callAsync.err (/tmp/my-project/node_modules/webpack/lib/Compilation.js:957:32)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/tmp/my-project/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:6:1)
at AsyncSeriesHook.lazyCompileHook [as _callAsync] (/tmp/my-project/node_modules/tapable/lib/Hook.js:35:21)
at hooks.additionalAssets.callAsync.err (/tmp/my-project/node_modules/webpack/lib/Compilation.js:952:36)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/tmp/my-project/node_modules/tapable/lib/HookCodeFactory.js:24:12), <anonymous>:6:1)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] dev: 'node build/dev-server.js'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Вам следует обновить ваш html-webpack-plugin
до последней версии:
npm install --save-dev [email protected]
И ошибка должна уйти.