首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DeprecationWarning:不推荐Tapable.plugin。在`.hooks`上使用新API代替

DeprecationWarning:不推荐Tapable.plugin。在`.hooks`上使用新API代替
EN

Stack Overflow用户
提问于 2018-04-20 13:16:48
回答 6查看 33.9K关注 0票数 26

我试图运行验证VueJS Cordova示例,但在npm run dev之后得到了这个错误

节点构建/dev-server.js 启动开发服务器..。(节点:1024)不推荐DeprecationWarning: Tapable.plugin。在.hooks上使用新的API代替(节点:1024) DeprecationWarning: Tapable.apply是不推荐的。直接调用插件

怎么修呢?我已经更新了所有的NPM软件包,没有帮助。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-04-22 22:44:48

反对信息:

DeprecationWarning:不推荐Tapable.apply。直接调用插件 DeprecationWarning:不推荐Tapable.plugin。在.hooks上使用新API代替

只是个警告

以下是每个遇到这条消息的人的简短摘要。 这是什么信息? webpack 4正在使用一个新的插件系统,不再支持以前的API。有两个新的警告: DeprecationWarning:不推荐Tapable.apply。直接在插件上调用apply,而不是DeprecationWarning:不推荐使用Tapable.plugin。在.hooks上使用新API代替 --这些都是警告。将输出到控制台,以警告我们的用户他们使用的是过时的API,应该迁移到最新的API。 这些警告有多糟糕? 它们只是文本信息,而不是错误。如果你看到一个DeprecationWarning ,你可以忽略它,直到你不得不更新到webpack的下一个主要版本。

所以你对此没有什么可做的。

除此之外,我相信你收到的错误如下:

代码语言:javascript
运行
复制
/tmp/my-project> npm run dev

> my-project2@1.0.0 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! my-project@1.0.0 dev: `node build/dev-server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-project@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

您应该将您的html-webpack-plugin更新为最新版本

代码语言:javascript
运行
复制
npm install --save-dev html-webpack-plugin@3

错误就会消失。

票数 24
EN

Stack Overflow用户

发布于 2018-07-25 15:11:08

有几个插件可能导致Webpack 4或更高版本的警告,因为他们仍然在使用旧的插件API,他们需要升级。若要查找引起警告的插件,请将其放在webpack配置文件的顶部:

process.traceDeprecation = true

您将看到如下所示的详细堆栈跟踪:

代码语言:javascript
运行
复制
 (node:10213) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
   at FriendlyErrorsWebpackPlugin.apply (./node_modules/friendly-errors-webpack-plugin/src/friendly-errors-plugin.js:39:14)
   at webpack (./node_modules/webpack/lib/webpack.js:37:12)
   at processOptions (./node_modules/webpack-cli/bin/webpack.js:436:16)
   at <anonymous>
   at process._tickCallback (internal/process/next_tick.js:160:7)
   at Function.Module.runMain (module.js:703:11)
   at startup (bootstrap_node.js:193:16)
   at bootstrap_node.js:617:3

在这种情况下,它意味着friendly-errors-webpack-plugin负责警告。

或者,您可以运行节点进程,添加--trace-deprecation标志。

在您发现是哪个插件导致警告之后,使用软件包管理器升级它,并且警告应该消失:

npm update friendly-errors-webpack-plugin

如果您不打算完全禁止类似此警告(不建议使用),请使用process.noDeprecation = true

票数 27
EN

Stack Overflow用户

发布于 2018-10-23 05:22:09

我也面临着同样的问题。使用以下命令解析:

npm安装-webpack-plugin@next

代码语言:javascript
运行
复制
NPM 6.4.1
Node 10.9.0
Webpack 4.22.0 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49942558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档