TGViewer
Стой под стрелой Стой под стрелой @nikitonsky_pub · 11.8K subscribers
Post #749 15.1K
Вчера случился передоз фронтендом, который я не понимаю, если честно, на каком-то фундаментальном уровне.

Во-первых, я обновил 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. С ТОГО ЖЕ ДОМЕНА. Почему это проблема? Как это проблема? Как можно было заблудиться в трех соснах? Как мы дошли до такой жизни? Зачем мне доказывать самому же себе, что я не верблюд?

Отдельно мне непонятна концепция, где _сайт_ говорит браузеру, какие у него же (сайта) есть пермишны. Просто на концептуальном уровне, это как на входе в здание ты сам себе пишешь бумажку «я могу войти», охранник смотрит и пропускает. В чем идея вообще?

Фронтенд это реально какой-то другой мир. Одни сумасшедшие придумывают кафкианские ритуалы, другие сумасшедшие в них охотно играют. В начале карьеры меня джава доводила до тряски своей нелогичностью, но фронтенд это прям новый уровень.
  • 👍 169
  • 💯 94
  • ❤ 31
  • 🤡 25
  • 🤣 22
  • 👎 10
  • 💊 5
  • 🥰 3
  • 🤬 1
  • 🐳 1
  • 🤝 1
More from @nikitonsky_pub
  1. Sep 21, 2026Самое обидное это конечно что ты вынашиваешь какую-то там идею неделю, две, месяц, год, жи…
  2. Sep 15, 2026Возник еще вопрос, почему не подписать поле ввода внутри, а когда на него нажимаешь, подпи…
  3. Sep 15, 2026Просто подпишите поля Есть такой тренд — писать название поля на форме внутри, плейсхолдер…
  4. Sep 11, 2026Мы все ругаем русских локализаторов и конечно за дело, но я вот как-то пошел у себя в Берл…
  5. Sep 10, 2026Поскольку я тут искал работу, столкнулся с интересным явлением. Разговариваю с фаундером и…
  6. Sep 5, 2026До сих пор думаю про чувака, который нашел мой профиль на Линкедине, спросил «работу ищешь…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →