1) Вариант если пути к модулям неизменны и их мало. Слово «модуль» в контексте «файл с js-кодом».
2) Вариант если нет фреймворка или иерархии компонент в сочетании например с Redux
Значение module.paths вычисляемое и различается для модулей в разных каталогах…
Вообще require поддерживает абсолютные пути, но относительно корня текущего диска.
Может быть стоит где-нить в main.js кроссплатформенно вычислить абсолютный путь до корня проекта.
Записать его в глоб. переменную (одна переменная — терпимо) и дальше везде тупо собирать полный путь…
Да, верно… Для разового включения это терпимо.
Но допустим, этот moduleA.js включен много где в файлах расположенных разных по уровню каталогах.
Каждый раз приходится «спускаться» до корня проекта вручную, потом «подниматься» до модуля.
Либо задумываться о замене CommonJS-вского require на что-то более умное.
Либо делать костыли — заранее в main.js подключить всё и сделать глобальным (с неймспейсами если надо):
global.ModuleA = require('./moduleA.js')
Хотел бы спросить.
Может уже придумали решение чтобы не делать require('../../../../moduleA') внутри moduleB?
Ограничение «только относительные пути» ухудшает читабельность и рефакторинг.
Насчет упаковки включаемого кода в node_modules в курсе — не выход (неудобно).
Спасибо за сервис. Удивлён что гиганты индустрии игнорируют эту тему. Google Bookmarks, del.icio.us — остаются по сей день в зачаточном состоянии. Встроенные в браузер решения так же недоразвиты — древовидная структура без поиска и тэгирования. Экспорт и импорт на уровне «чтобы было». Желаю автору успешно поддерживать и развивать проект.
2) Вариант если нет фреймворка или иерархии компонент в сочетании например с Redux
Впрочем, пока для себя определился.
инклуды в других файлах, было:
стало:
проверил на Win\Mac — нормально
Прокатит даже для клиентского js-кода где за require-кухню отвечает webpack.
Только придется поддержку __dirname ему в конфиге включить явно.
Вообще require поддерживает абсолютные пути, но относительно корня текущего диска.
Может быть стоит где-нить в main.js кроссплатформенно вычислить абсолютный путь до корня проекта.
Записать его в глоб. переменную (одна переменная — терпимо) и дальше везде тупо собирать полный путь…
Но допустим, этот moduleA.js включен много где в файлах расположенных разных по уровню каталогах.
Каждый раз приходится «спускаться» до корня проекта вручную, потом «подниматься» до модуля.
Либо задумываться о замене CommonJS-вского require на что-то более умное.
Либо делать костыли — заранее в main.js подключить всё и сделать глобальным (с неймспейсами если надо):
global.ModuleA = require('./moduleA.js')
Хотел бы спросить.
Может уже придумали решение чтобы не делать require('../../../../moduleA') внутри moduleB?
Ограничение «только относительные пути» ухудшает читабельность и рефакторинг.
Насчет упаковки включаемого кода в node_modules в курсе — не выход (неудобно).
В мобильных FFBE и FFRK вся графика «современная» кроме персонажей.