Локальные настройки в проекте javascript - PullRequest
2 голосов
/ 05 марта 2012

Я работаю над проектом javascript с открытым исходным кодом, использующим магистральную сеть, которая использует множество глобальных настроек. Для локальной разработки нам бы хотелось, чтобы каждый разработчик мог устанавливать свои собственные настройки, но мы хотим, чтобы они существовали в отдельном файле, поэтому мы можем исключить его из репозитория с помощью .gitignore.

Я пришел из Django, и существует соглашение о settings.py и local_settings.py, где settings.py просто делает что-то вроде:

try:
    from local_settings import *
except:
    pass

Существует ли эквивалентное соглашение javascript для локальных настроек?

Ответы [ 2 ]

4 голосов
/ 05 марта 2012

Да, просто создайте глобальный объект (или локальный для вашего пространства имен, если он у вас есть), содержащий все настройки:

var settings = {
    ...
};

Поскольку глобальные переменные действительно глобальны в JavaScript и не зависят от модуля, как в Python, нет необходимости импортировать что-либо.

Если вы хотите расширить / перезаписать объект настроек, вы можете, например, используйте метод jQuery $.extend():

var currentSettings = $.extend(true, {}, settings, localSettings);
0 голосов
/ 06 марта 2012

Я не уверен, какие настройки вы хотите экспортировать в js и почему.В любом случае, если вы захотите это сделать, я думаю, что самым простым будет иметь представление json в django, предоставляющее настройки для вашего javascript.Таким образом, по крайней мере, у вас может быть одно место для хранения настроек.

Я не Django dev, но я думаю, что-то вроде

from json import dumps
from django.http import HttpResponse

...

def json_settings(request):
    json = dumps(local_settings)
    return HttpResponse(json, mimetype='application/json')

сделает эту работу,Затем вы можете получить эти настройки, позвонив $.getJSON

...