LINUX.ORG.RU

Каким образом удалось запустить node js в браузере?

 , , ,


0

1

Каким образом работает сайт stackblitz.com который позволяет на ФРОНТЕНДЕ запустить nodejs, и некоторые фреймворки типа next.js?

Я нашел заброшенный опенсорс проект 2018 https://github.com/olydis/node-in-browser, с некоторыми костылями он у меня запустился, но это дает лишь долю ответов на вопрос как вся таки работает stackblitz

★★★

Плюсую к браузерификации, но есть проблема — когда я год назад последний раз смотрел на нее, она была не полная. То есть, реализации значительного числа фич ноды не было в браузере. Но как минимум виртуальную ФС поддерживали. да.

byko3y ★★★★ ()
Ответ на: комментарий от Vit

Я кратко глянул https://github.com/browserify/browserify, это вроде не дает всех возможностей, на stackblitz.com можно написать бекенд код который работает с файлами, можно создавать новые файлы, заходить по адресу на свой же сервер и так далее

abs ★★★ ()
Ответ на: комментарий от abs

Дык там реп указываешь, они к себе файлы всасывают и полифилят. С локальными там работать нельзя (если говорят что в браузере запускают).

В общем, там очень любопытный проект, но ни о какой ноде в браузере речи быть не может. Максимум они дадут на их сервере недолго ноду запустить (не факт), но такими ресурсами на халяву не разбрасываются.

Возможно ты просто не в теме. Просто запомни - для браузера делают отдельные билды, и все чего не хватает от локалки - либо нельзя использовать, либо надо костылять. Как именно - смотри сам по обстоятельствам. «Ноды в браузере» не бывает. Из инструментов смотри в первую очередь webpack, rollup, browserify.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

Максимум они дадут на их сервере недолго ноду запустить (не факт), но такими ресурсами на халяву не разбрасываются.

Так я отключил интернет чтоб убедиться что оно действительно в браузере работает, а не перебрасывается на их сервер и обратно.

С локальными там работать нельзя (если говорят что в браузере запускают).

Там можно создавать новые файлы с кодом и оно будет работать

abs ★★★ ()
Ответ на: комментарий от abs

Ну виртуальную файловую систему почти все эмулировать умеют. Эмулировать http тоже научились https://github.com/nock/nock.

Теоретически, можно конечно ноду под webassembly пересобрать, переписав libuv, но сомневаюсь что кто-то будет так заморачиваться.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

Я собственно что хочу сделать, свою веб IDE, для написания фронтендового кода, зачастую фронтендовый код использует некоторые инструменты из под ноды, скажем webpack для сборки, jest для тестирования и так далее.

Вот я и пытаюсь найти способ запуска этих инструментов из под браузера, а в идеале еще и запустить next.js, который уже является сервером

abs ★★★ ()
Ответ на: комментарий от abs

Я собственно что хочу сделать, свою веб IDE

а чем cloud9 ide или vscode не угодили?

ZuBB ★★★★★ ()
Ответ на: комментарий от abs

В браузере доступ к сокетам кастрированный, из-за security. Как бы не пришлось это все эмулировать. Задача решаемая, но сомневаюсь что обгонишь vscode и cloud9.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

vscode

А собственно vscode.dev не опенсорс, я взял опенсурсный monaco-editor, но это только «текстовое поле», саму файловую систему и так далее мне нужно будет самому как-то сделать

abs ★★★ ()
Ответ на: комментарий от dsxl

Все-таки пересобрали. Ну молодцы, что. С таким способом запуска на практике не сталкивался.

Интересно, как они умудрятся сеть эмулировать. Например, мой код хочет картинку с внешнего сервера скачать. Это из браузера физически невозможно, если в ответе CORS не прописали правильно.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

как они умудрятся сеть эмулировать. Например, мой код хочет картинку с внешнего сервера скачать

Никак, ждут пока нормальные сокеты в capabilities API завезут.
https://chromestatus.com/feature/6398297361088512
https://web.dev/fugu-status/

dsxl ()
Последнее исправление: dsxl (всего исправлений: 1)
Ответ на: комментарий от dsxl

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

Vit ★★★★★ ()
Ответ на: комментарий от abs

IMHO ты не о том паришься. До того как рассуждать про кодинг, надо внятно сфорулировать «зачем» и «как сложно». Тебе дали аж 2 примера, по которым видно что ты лисапедишь, и задача довольно непростая.

Vit ★★★★★ ()
  • интересный сервис
    • используются различные передовые технологии
  • если хорошо поискать, можно найти исходники и/или аналоги
    • очевидно, проект использует открытые решения
    • должны быть открытые аналоги и альтернативы
anonymous ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.