Существует модуль, который используется в качестве пространства имен (по соображениям тестируемости или иначе):
export function bar() {}
export function baz() {
this.bar();
}
export function qux() {}
Это может считаться плохой практикой, поскольку baz
зависит от контекста и не может быть импортирован отдельнокак названо export:
import * as Foo from './foo';
Foo.baz();
Можно ли предположить, что this.bar
не влияет на механизм встряхивания дерева, а bar
и qux
будут потрясены деревом?
Можно ли заставить упаковщик знать о связи между bar
и baz
, поэтому, если используется Foo.baz
, только qux
расшатан по дереву?
Вопрос в первую очередь касаетсяПотрясает дерево веб-пакетов, но также приветствуются объяснения для других упаковщиков (Rollup).