Internet browser APIs along with don’t use this naming seminar and this including prevents issues which have internet browser APIs
Written by ABC AUDIO on October 4, 2022
Simply mangling properties that bring about an enthusiastic emphasize is a reasonable heuristic once the regular JS code cannot generally consist of identifiers in that way. If you’d like to prevent mangling brands for example __defineGetter__ you can consider using a far more advanced regular expression such as for instance [^_]_$ (we.age. need to cause a non-underscore followed by an enthusiastic emphasize).
This really is a separate mode in the place of being an element of the minify means because it is an unsafe conversion that doesn’t works on haphazard JavaScript password. They simply works if your provided normal term fits each of this new properties that you want mangled and will not matches one of the attributes that you do not need mangled. In addition it only performs if you do not lower than any factors resource a good mangled assets indirectly. Such as for instance, it indicates you simply cannot play with obj[prop] to source a house where prop is a sequence with the fresh assets term. Specifically another syntax constructs could be the only ones qualified to receive property mangling:
When using this particular feature, keep in mind that assets names are merely continuously mangled in this a single esbuild API label but not across esbuild API phone calls. Each esbuild API name does another assets mangling operation therefore production data produced by a couple of various other API calls parece, that may result in the ensuing password to behave wrongly.
#Quoted functions
By default, esbuild doesn’t modify the contents of string literals. This means you can avoid property mangling for an individual property by quoting it as a string. However, you must consistently use quotes or no quotes for a given property everywhere for this to work. For example, print(.foo_) will be mangled into print(.a) while print([‘foo_’]) will not be mangled.
If you need to own esbuild so you can including mangle the latest contents out of sequence literals, you could potentially explicitly allow you to definitely decisions like this:
#Preventing renaming
If you want in order to prohibit specific qualities of mangling, you can set-aside these with a supplementary means. Including, it uses the conventional expression ^__.*__$ to reserve most of the qualities one to start and you may avoid having a couple of underscores, instance __foo__ :
#Persisting renaming choices
State-of-the-art access to the house or property mangling ability comes to storage the fresh new mapping away from brand-new name to help you mangled identity inside the a long-term cache. When enabled, all mangled property renamings are filed on the cache in first generate. Then produces recycle new renamings stored in the cache and you will add most renamings for the recently-additional properties. It has several consequences:
The brand new cache serves as a list of all the features that were mangled. You’ll scan it to find out if discover any unanticipated property renamings.
You could eliminate mangling getting personal services of the mode new renamed value in order to not the case in lieu of so you can a set. This will be much like the reserve props mode however, on a beneficial per-property base.
You could potentially be sure consistent renaming anywhere between yields (elizabeth.grams. a central-thread file and a web site personnel, otherwise a collection and you can a plugin). Instead this particular aspect, for every single generate should do another renaming procedure while the mangled assets labels likely would not be uniform.
When we want customRenaming_ Paterson NJ live escort reviews becoming rebranded to help you cR_ and we do not want disabledRenaming_ to-be rebranded anyway, we are able to citation the next mangle cache JSON to help you esbuild:
#Metafile
This informs esbuild to create certain metadata concerning build inside the JSON structure. The second example sets the brand new metadata when you look at the a file entitled meta.json :
These records are able to become reviewed by other equipment. Like, bundle buddy can consume esbuild’s metadata format and you will produces an excellent treemap visualization of modules on the package and exactly how far space each of them occupies.