fix: disable config discovery when executing "Deno code" in node_modules directory #5767
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.
Summary
Deno doesn't support https specifiers or TypeScript in node_modules directories. The
@netlify/edge-bundler
package has code with https specifiers and TypeScript in it.Take the following directory structure:
When executing
my_project/node_modules/@netlify/edge-bundler/deno/config.ts
, Deno would previously resolve the project root asmy_project/node_modules/@netlify/edge-bundler
due to the package.json in that folder. In Deno 1.45, Deno has gotten smarter though and resolves the project root tomy_project
. This change fixes a lot of previously broken code when executing entrypoints in node_modules directories, but causes an error for@netlify/edge-bundler
.To fix this, we can disable config file resolution when executing the "Deno code" in the node_modules directory using
--no-config
. Although not really necessary since config file resolution is disabled, I've set--node-modules-dir=false
for good measure to disable the concept of a node_modules directory for the code. This change will also cause things to be a few ms faster because Deno doesn't need to do config file/workspace discovery.Can't run the build on my local machine because I'm on a Windows machine atm (it fails with non-cross platform code), so using the CI for testing.
For us to review and ship your PR efficiently, please perform the following steps:
we can discuss the changes and get feedback from everyone that should be involved. If you`re fixing a typo or
something that`s on fire 🔥 (e.g. incident related), you can skip this step.
your code follows our style guide and passes our tests.
A picture of a cute animal (not mandatory, but encouraged)