Вчера случился передоз фронтендом, который я не понимаю, если честно, на каком-то фундаментальном уровне.
Во-первых, я обновил npm на какую-то минорную версию, и теперь при старте приложения вижу это:
(node:45421) ExperimentalWarning: CommonJS module /opt/homebrew/lib/node_modules/npm/node_modules/debug/src/node.js is loading ES Module /opt/homebrew/lib/node_modules/npm/node_modules/supports-color/index.js using require().
Support for loading ES Module in require() is an experimental feature and might change at any time
(Use node --trace-warnings ... to show where the warning was created)
Я знаю что у вас там много лет идет война за то, как один файл включить в другой. Казалось бы, тривиальная задача, плюс мы это делали 20 лет назад, когда HTML писали руками и по FTP загружали. УЖЕ ТОГДА все работало. Как можно было это сломать? Или — ладно — сломать-то что угодно можно, но как можно так долго такую тривиальщину мусолить? Один файл включить в другой файл. Ну там нет сложности, ну нет, даже если с фонарем поискать. Берешь и включешь.
Отдельно отмечу полезность сообщения: хэй, вот эта штука работает, от тебя в принципе ничего не нужно, но вот тебе ворнинг все равно, чтобы понервничал. Как будто у меня других причин понервничать нет. И следом какая-то хуйня еще подсирает: кстати, а ты знал что есть флаг? Знал? Ну ладно. Не знал? Ну короче вот, флаг еще есть. Мало ли.
Что такое node:45421 не знает даже гугл.
Второй случай произошел уже в Мастодоне. Пишет мне чел:
> На пайплайне билдится проект, каждый раз имена js/css обмазываются хешами типа main.45387.js (angular обычный). Все это закидывается в CDN, бекенда нет кроме CDN с раздачей этой статики. Нужно безопасно сетить CSP хедер без unsafe-\*. CDN о деплоях и хешах не знает, nonce'ы добавлять тоже не вариант. Как в современном мире принято "безопасно" грузить любе ресурсы со своего же домена без unsafe? 'self' и \*.домен не помогло.
И это все весело по тем же причинам: тривиальная задача (включить один файл в другой), какой-то адовый фарш из терминов и сложности, мое полное фундаментальное непонимание, КАК можно было ТАК сильно сломать такую простую вещь. Типа, блин, HTML загружает JS. С ТОГО ЖЕ ДОМЕНА. Почему это проблема? Как это проблема? Как можно было заблудиться в трех соснах? Как мы дошли до такой жизни? Зачем мне доказывать самому же себе, что я не верблюд?
Отдельно мне непонятна концепция, где _сайт_ говорит браузеру, какие у него же (сайта) есть пермишны. Просто на концептуальном уровне, это как на входе в здание ты сам себе пишешь бумажку «я могу войти», охранник смотрит и пропускает. В чем идея вообще?
Фронтенд это реально какой-то другой мир. Одни сумасшедшие придумывают кафкианские ритуалы, другие сумасшедшие в них охотно играют. В начале карьеры меня джава доводила до тряски своей нелогичностью, но фронтенд это прям новый уровень.