Tapable.plugin is deprecated. Use new API on `.hooks` instead
- Dominant language
- JavaScript
- Stars
- 419
- Forks
- 55
- PR merge metrics
- No merged PRs in 30d
Description
I am trying to upgrade my Webpack 4 to Webpack5. (Earlier it was Webpack2)
On running node --trace-deprecation node_modules/webpack/bin/webpack.js
I get
**(node:30954) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
at DecompressPlugin.apply (/Users/adityashukla/projects/userInterface/source-catalog-web/plugins/DecompressPlugin.js:16:18)
at webpack (/Users/adityashukla/projects/userInterface/source-catalog-web/node_modules/webpack/lib/webpack.js:51:13)
**
My Plugin looks like this
```
const path = require('path'),
const path = require('path'),
decompress = require('decompress'),
crypto = require('crypto'),
glob = require('glob');
class DecompressPlugin {
constructor(dist) {
if (!dist) {
throw new Error('dist is a required option');
}
this.dist = dist;
}
apply(compiler) {
compiler.plugin('emit', (compilation, done) => {
const files = glob.sync('**/*.decompress.tar.bz2', {'cwd': 'src'}),
hash = crypto.createHash('sha256').update(JSON.stringify(files.sort()), 'utf8').digest('hex');
if (this.hash !== hash) {
this.hash = hash;
files.forEach((f) => {
const folder = path.dirname(f).split(path.sep),
parts = [this.dist].concat(folder.slice(1)),
destination = parts.join(path.sep);
decompress(path.join('src', f), destination).then(() => {
done();
});
});
} else {
done();
}
});
}
}
module.exports = DecompressPlugin;
```
How can i resolve this ?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the reported DecompressPlugin.js line 16 and the apply method shown in the issue. Compare its compiler.plugin('emit', ...) usage with the Webpack 5 hooks API and verify how the decompress callback completes. Done means the plugin extracts the listed archives without the Tapable deprecation warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, nodejs
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100