Fix plugin dependency checks and set npmPackage values on plugins #6046
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses #6035
The original scope of the issue was to set the
npmPackage
property of our hardhat3 plugins, so when an import fails we can give detailed information if a given plugin package is missing, or some of its peer dependencies.When running a test scenario, specifically using
hardhat-viem
and not having theviem
peer dep installed, I noticed that even after setting thenpmPackage
property on our plugin, the error message wasn't helping. This lead me to debug the coreplugins/detect-plugin-npm-dependency-problems.ts
module.I noticed that the
require.resolve
function was not working, and after thorough debugging I found out that thecreateRequire
function doesn't work properly when passing an absolute path to a directory without a trailing forward slash. Adding the trailing forward slash to the directory path would make therequire
instance work.After that, I started to get the error that
package.json
was not being exported by our modules, and we need torequire()
those to find the peer dependencies of packages. Then I added an export ofpackage.json
to all of our modules.Closes #6035