به فرایند حذف آن بخش از کدهایی که در برنامه مورد استفاده قرار نمی گیرند (dead code ها)، درخت تکانی یا tree shaking می گویند. مانند وقتی که یک درخت را می تکانیم، تا برگ های خشک و مرده ی آن پایین بریزند. این واژه معمولاً در حوزه ی جاوااسکریپت استفاده می شود. ساختار ایستایی (static) که سینتکس ماژول ها در ES2015 دارد (امکان import و export ماژول ها)، امکان جداسازی کد های بدون استفاده یا همان درخت تکانی را فراهم می کند.
امروزه برنامه های جاوااسکریپتی، معمولاً از تعداد زیادی فایل و ماژول جاوااسکریپت تشکیل شده اند. برای یکپارچه سازی این ماژول های متعدد، از ابزار هایی به نام جمع کننده ی ماژول (module bundler) استفاده می شود. این ابزار ها وظیفه دارند که کد ماژول های مورد استفاده در برنامه و نحوه ی ارتباط آنها با هم را پیدا کرده و آنها را به گونه ای در کنار هم قرار دهند، که در نهایت یک فایل جاوااسکریپت واحد تشکیل شود. ابزارهایی مانند rollup ،webpack و parcel از جمله ی این ابزار ها هستند. این ابزار ها با استفاده از درخت تکانی، فایل نهایی کوچک تر و بهینه تری را تولید می کنند.
واژه ی tree shaking نخستین بار توسط rollup معرفی شد.