Bump esbuild from 0.14.36 to 0.25.11 by dependabot[bot] · Pull Request #109 · MethodFi/method-node
Changelog: 2022
This changelog documents all esbuild versions published in the year 2022 (versions 0.14.11 through 0.16.12).
0.16.12
-
Loader defaults to
jsfor extensionless files (#2776)Certain packages contain files without an extension. For example, the
yargspackage contains the fileyargs/yargswhich has no extension. Node, Webpack, and Parcel can all understand code that importsyargs/yargsbecause they assume that the file is JavaScript. However, esbuild was previously unable to understand this code because it relies on the file extension to tell it how to interpret the file. With this release, esbuild will now assume files without an extension are JavaScript files. This can be customized by setting the loader for""(the empty string, representing files without an extension) to another loader. For example, if you want files without an extension to be treated as CSS instead, you can do that like this:-
CLI:
esbuild --bundle --loader:=css -
JS:
esbuild.build({ bundle: true, loader: { '': 'css' }, })
-
Go:
api.Build(api.BuildOptions{ Bundle: true, Loader: map[string]api.Loader{"": api.LoaderCSS}, })
In addition, the
"type"field inpackage.jsonfiles now only applies to files with an explicit.js,.jsx,.ts, or.tsxextension. Previously it was incorrectly applied by esbuild to all files that had an extension other than.mjs,.mts,.cjs, or.ctsincluding extensionless files. So for example an extensionless file in a"type": "module"package is now treated as CommonJS instead of ESM. -
0.16.11
-
Avoid a syntax error in the presence of direct
eval(#2761)The behavior of nested
functiondeclarations in JavaScript depends on whether the code is run in strict mode or not. It would be problematic if esbuild preserved nestedfunctiondeclarations in its output because then the behavior would depend on whether the output was run in strict mode or not instead of respecting the strict mode behavior of the original source code. To avoid this, esbuild transforms nestedfunctiondeclarations to preserve the intended behavior of the original source code regardless of whether the output is run in strict mode or not:// Original code if (true) { function foo() {} console.log(!!foo) foo = null console.log(!!foo) }
... (truncated)