Классическая реализация метода noConflict() выглядит примерно так:
const original = globalThis.libraryVariable; // сохраняем предыдущее значение заменяемой переменной
globalThis.libraryVariable = libraryExport; // перезаписываем нашей либой
libraryExport.noConflict = () => {
globalThis.libraryVariable = original; // восстанавливаем сохраненное значение
return libraryExport; // возвращаем нашу либу
};
где:
globalThis - стандартное (начиная с ES2020) имя для глобального объекта (window, self - в браузере, global - в ноде - псевдонимы)
libraryVariable - глобальная переменная содержащая библиотеку, в случае с jQuery таких переменных 2 - $ и jQuery
libraryExport - внутренняя переменная, которая так же хранит ссылку на библиотеку (это нужно, чтоб либа не сломалась, даже если Вы руками измените глобальную переменную)
P.S. в современном мире большинство библиотек по возможности используют модульную систему и не засоряют глобальный объект