TGViewer
adelf on programming adelf on programming @adelf_on_programming · 1.57K subscribers
Post #131 3.18K
На прошлой неделе ностальгировал по вебу и погрузился в доработку новой версии https://laravel-idea.com/ - можете посмотреть кстати, там наверняка еще осталось пару косяков, но уже более-менее.

Один товарищ почти сделал ее еще полгода назад. Но там было куча деталей, которые в итоге пришлось самому дописывать. Я даже руками svg иконку правил! Понравился концепт. Ты пишешь почти все, что надо в markdown-файлах. Что необходимо - дописываешь Vue-компонентами. Просишь собрать и оно собирает все в одну папку с html/js/css, которую можно просто положить на сервер и оно работает. Полноценное SPA, причем браузер получает уже срендеренный для каждой страницы HTML, как при SSR. Но собирается это все хоть на машине разработчика еще(хотя правильнее на CI), и на сервере лежит уже в html-файлах. Для не особо динамических сайтов самое то. Главная страница, документация, ну и блог продукта небольшой там же будет. Инструмент называется Vitepress от создателя Vue.

Но проблема всех этих глубоких компиляций разных яваскриптов друг в друга почти всегда одна и та же: если вдруг совершаешь небольшую ошибку, то придется долго гадать что явилось ей причиной. Stacktrace не поможет. Он может выглядеть примерно так и вообще ничего не даст.

Error: Transform failed with 2 errors:
inline-script.js:1:0: ERROR: The JSX syntax extension is not currently enabled
inline-script.js:2:25: ERROR: Expected "}" but found ";"
at failureErrorWithLog (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:1651:15)
at /Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:849:29
at responseCallbacks.<computed> (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:704:9)
at handleIncomingPacket (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:764:9)
at Socket.readFromStdout (/Users/adel/test/laravel-idea/node_modules/esbuild/lib/main.js:680:7)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
at Pipe.onStreamRead (node:internal/stream_base_commons:190:23)


Мораль: современный яваскриптовый веб - крутой. И аналогов достойных у него нет. Но внутри все до сих пор выглядит так хрупко, будто чихнешь и все развалится.
  • 💯 16
  • 👍 7
  • 😁 2
More from @adelf_on_programming
  1. Sep 10, 2026Новый дивный мир Пришел issue, в котором юзер жалуется на какое-то несоответствие логики.…
  2. Aug 11, 2026Podlodka #489 – Laravel Laravel любят за скорость разработки, ругают за магию и регулярно…
  3. Jun 4, 2026Под прошлым постом развернулась дискуссия, которая в очередной раз показала, что в програм…
  4. Jun 1, 2026Часто слышу мнение в стиле "неймспейс это тоже часть имени класса. Используйте его" И, как…
  5. Apr 20, 2026Хранение дефолтных значений Для новой фичи мне нужно хранить токен Sentry и домен, где это…
  6. Jan 18, 2026Исследую сейчас исходники Livewire4. Прекрасный пример, когда две совсем разные логики пыт…
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 →