Javascript, common-js модули: require в браузере, но без сборки в один файл — что можно для этого использовать?

Я хочу сделать, вроде бы, простую вещь:

Есть код на Node.js:
// module.js:
exports.hello = function(){
	return 'hello';
};

// app.js:
var app = require('./module.js');
var greeting = app.hello();
console.log(greeting);


Я хочу чтобы этот код работал в браузере так же, как и в Node.js.
Да, я слышал про такие вещи как browserify, require.js, webpack etc. Но, насколько мне известно все они работают (по крайней мере по умолчанию) по принципу собрать все в одну (или несколько) кучу, назвать это bundle.js и подключить только его, а мне хотелось бы этого избежать. Т. е. мне нужны js node-подобные модули, но без склейки в один файл. При этом я хочу сохранить структуру директорий в которых лежат скрипты:

c578296057114b38bdde0a89d1a0663f.PNGЗачем это мне потребовалось?
Чтобы в chrome-DevTools иерархия была та же, что и у меня в папке с исходниками. Т. е. на время разработки я хочу получить множество подключенных скриптов на странице, причем их url'ы должны вполне понятно соотносится с содержимым рабочей директории. Так как, не то что о продакшене, даже о запуске не на локальной машине нету речи, то и оптимизировать (загрузку - объединением запросов за скриптами, например) смысла не вижу.

Да, есть source-map'ы, но мне хотелось бы keep it simple максимально, насколько возможно. Если Вы очень рекомендуете использовать именно их или двигаться в другом направлении

Т. е. нужен инструмент который выполняет одну функцию - дает возможность использовать require() синтаксис (идентичный node.js) в браузере.

Возможно один из перечисленных выше инструментов это умеет, тогда я буду рад подсказке, как настроить такую сборку.

P. S. сейчас имеется свой очень сырой "велосипед", который решает задачу, но мне хотелось бы избежать использования самописного кода для столь базовых вещей.
  • Вопрос задан
  • 1994 просмотра
Пригласить эксперта
Ответы на вопрос 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Да, есть source-map'ы, но мне хотелось бы keep it simple максимально, насколько возможно.
На мой взгляд, симплее некуда, но если очень хочется заморочиться, то есть require.js (но для него нужно будет серверный код переделывать, потому что не CommonJS).
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Я на днях набросал вот такое: i.imgur.com/1f976Od.png (сорри что картинкой, нет кода под рукой)

Скрипт грузится только один раз. Если скрипт еще в процессе загрузки - коллбэки становятся в очередь.
В качестве бонуса еще и подгрузка css.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы