-
Add support for the
mips64le
architecture (#523)You should now be able to install esbuild on the
mips64le
architecture. This build target is second-tier as it's not covered by CI, but I tested it in an emulator and it appears to work at the moment. -
Fix for packages with inconsistent side effect markings
Packages can have multiple entry points in their
package.json
file. Two commonly-used ones are specified using the fieldsmain
andmodule
. Packages can also mark files in the package as not having side effects using thesideEffects
field. Some packages have one entry point marked as having side effects and the other entry point as not having side effects. This is arguably a problem with the package itself. However, this caused an issue with esbuild's automatic entry point field selection method where it would incorrectly consider bothmain
andmodule
to not have side effects if one of them was marked as not having side effects. Nowmain
andmodule
will only be considered to not have side effects if the individual file was marked as not having side effects. -
Warn about
import './file'
when./file
was marked as having no side effectsFiles in packages containing
"sideEffects": false
in the enclosingpackage.json
file are intended to be automatically removed from the bundle if they aren't used. However, code containingimport './file'
is likely trying to import that file for a side effect. This is a conflict of intentions so it seems like a good idea to warn about this. It's likely a configuration error by the author of the package. The warning points to the location inpackage.json
that caused this situation. -
Add support for glob-style tests in
sideEffects
arraysThe
sideEffects
field inpackage.json
can optionally contain an array of files that are considered to have side effects. Any file not in that list will be removed if the import isn't used. Webpack supports the*
and?
wildcard characters in these file strings. With this release, esbuild supports these wildcard characters too.