Comments (3)
@wmhilton Currently, the only JavaScript optimizer (that I am aware of) that can do dead code elimination on class methods is the Google Closure Compiler. It does a lot of awesome optimizations that other tools (e.g. Webpack, Uglify, Rollup) do not do.
However, in order to achieve those optimizations, it requires you to follow various restrictions. Those restrictions means that most JavaScript libraries won't work. Generally, only code which has been specifically written for Google Closure Compiler will work.
As JavaScript is a highly dynamic language, it is hard to decide if meta info of a class will be used, or if the class will be passed as a whole and used by other unknown methods, unlike "top-level" function themselves can be easily identified all uses.
Maybe farer future. This would be rather complex to get right, object expression tree-shaking should probably come first, and that one is currently far down the pipeline
#5420 may achieve object expression tree-shaking! So maybe in future, the class method tree-shaking will be supported.
from rollup.
Exactly! I still need to find some time to properly review it, but the goal is to at least lay the groundwork for this. Once we can control object properties, we can start looking into the additional complexities of classes.
from rollup.
Sounds good :)
from rollup.
Related Issues (20)
- Upgrade from vite 4 to vite 5 crashes in rollup with maximum call stack exceeded HOT 2
- function parameter tracking does not handle spread syntax in arguments correctly HOT 3
- top level return for IIFEs HOT 2
- Function body being mistakenly optimized away HOT 3
- After Babel starts runtime and rolls up preserveModules=true, it will result in an extra layer of output structure HOT 5
- Unknown Fatal Error if code is not an int
- Error: 'default' is not exported by node_modules/interactjs/dist/interact.min.js,
- Don't create dynamic import objects when never used
- Provide original name of exports in output bundle
- Node.JS 22.2.0 rollup 4.18.0 hits `[!] SyntaxError: Unexpected identifier 'assert'` error HOT 1
- React component wont render
- How to configure the .scss file under the style folder to generate a .css file in dist/style/ after building?
- Does not support BSD, not sure why, but it should be easy to port. HOT 2
- Declaring `sideEffects` causes Rollup to drop code with side effects HOT 2
- How to named export from CommonJS module with rollup?
- Packaging vue components, it seems that typescript code is not recognized
- inlineDynamicImports with top level await import() cause runtime error
- JS Decorator Stage 3 support
- `@__NO_SIDE_EFFECTS__` annotation not working with imported function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rollup.