Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2015, 21:44
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Как с помощью AMD (require) запросить модуль с относительным адресом?
Скажем. у меня есть некая библиотека, которая тягается из проекта в проект. Периодически меняется положение библиотеки относительно главного вызова require. Проблема в том, что модули, запрашиваемые другими модулями библиотеки используют относительный путь , относительно файла (сорри за тавтологию), вызвавшего require.

Попробую прояснить на примере:
Код:
/index.js - файл, который запрашивает библиотеку
/my-lib/main.js - файл библиотеки
/my-lib/submodule.js - некий вспомогательный файл запрашиваемый библиотекой

В index.js я вызываю:
require(['my-lib/main'], function() {...});


В my-lib/main.js вызываю:
define(['./submodule'], function() {...});


Но requirejs пытается найти submodule в папке, в которой лежит index.js, выдавая, конечно же, 404.

Вновь костылить, жонглируя с paths (что я успешно делаю около года из-за отсутствия относительных путей) не допустимо в данном случае. Как эту проблему решить?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2015, 23:46
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

А если так
require(__dirname + '/submodule');
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2015, 11:08
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM
Как эту проблему решить?
А почему ты не используешь настройки requirejs?

например:
require.config({
  baseUrl: '.', // тут возможно я не прав, поправь если надо
  paths: {
    'main': 'my-lib/main',
    'submodule': 'my-lib/submodule'
  }
});

// далее везде вызываешь:
require(['main'], function() {...});
define(['submodule'], function() {...});
ну и т.д.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2015, 11:12
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

devote,
Сообщение от FINoM
Вновь костылить, жонглируя с paths (что я успешно делаю около года из-за отсутствия относительных путей) не допустимо в данном случае. Как эту проблему решить?
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #5 (permalink)  
Старый 29.08.2015, 11:15
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

FINoM,
оу.. да похоже я еще не проснулся))) Но без жанглирования увы никак.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Работа 6 06.09.2010 16:16
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 17:12