Remove --public-path from build_script #204
Open
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 removes the '--public-path=/assets` option from the generator (install.rb).
Background: The esbuild option
--public-path
is meant to be used to define alternate absolute asset hosts for file loaders. The documentation under https://esbuild.github.io/api/#public-path gives an example of--public-path=https://www.example.com/v1
.Using it to prefix
/assets
is incorrect usage I believe and unnecessary.When esbuild encounters a
url(...)
it will add the prefix to the rewritten url, but it will not impact the file location where the asset is stored by esbuild.Setting
--public-path=/assets
will thus interfere with downstream asset processing (for example Sprocket's AssetUrlProcessor), because the corresponding asset can't be found on disk. The asset processor is looking to resolve the prefixed URL, but can't find it becauseesbuild
isn't adding the public path to files written tooutdir
.I believe this went unnoticed, because using this option only affects
--loader:xxx=file
(for instance when handlingttf
orwoff2
) and when usingesbuild
to handle such assets at all (for instance when importing CSS via yarn).Since asset urls are rewritten anyway, removing --public-path doesn't have a negative impact.