#javascript #webpack #tree-shaking
#javascript #webpack #встряхивание дерева
Вопрос:
Например, я использую mustache
в своей библиотеке, но он используется только в экспортируемой функции
import mustache from 'mustache'
export function some() {
...
mustache
...
}
export function other() {
...
}
Когда я импортирую только other
из этой библиотеки и создаю пакет с использованием webpack, webpack включает mustache
в себя код, потому что он считает, что код mustache
не является чистым.
Могу ли я как-то пометить mustache
импорт как чистый?
Ответ №1:
Я думаю, что Webpack всегда mustache
будет связываться при его импорте.
Возможно, вы можете разделить свою библиотеку на несколько файлов:
some.js
import mustache from 'mustache'
export default function some() {
...
mustache
...
}
и other.js
export default function other() {
...
}
и создайте основной index.js
файл, который является экспортом по умолчанию и сочетает в себе вышеуказанное:
import some from './some';
import other from './other';
export default {
some,
other,
};
Таким образом, ваша библиотека может использоваться целиком (через index.js
) или по частям — some.js
или other.js
(которые не будут включены mustache
в нее).
// you can use the whole library as
import library from 'library';
// or you can use any part, for example 'other' (without mustache)
import other from 'library/other';