fix: more robust static site detection #505
Merged
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.
We skip running the plugin if we detect that
next export
is being called. Previously we only checked if it was either the build command, or in the npm script that was called by the build command. This meant it missed build commands that were called indirectly, e.g. when thebuild
script callsnpm run export
.To fix this, I have used a package called
parse-npm-script
, which is designed for exactly this. However it misses a lot of edge cases, so I have vendored it and added support for parsingnpm-run-all
andcross-env
calls. I've not done an upstream PR, because I've also removed features as I want it to be sync.Finally, I've added support for an env varNEXT_IS_STATIC_EXPORT
which can be set and will enforce this too.Fixes #503