我正在使用使用一堆全局设置的主干的开源JavaScript项目。对于本地开发,我们希望每个开发人员能够设置自己的设置,但我们希望它存在于单独的文件中,以便我们可以使用.gitignore将其从存储库中排除。
我来自Django背景,惯例是设置一个settings.py和local_settings.py,其中settings.py只是这样:
try:
from local_settings import *
except:
pass
本地设置是否有等效的javascript约定?
答案 0 :(得分:4)
是的,只需创建一个包含所有设置的全局对象(或命名空间的本地对象):
var settings = {
...
};
由于全局变量在JavaScript中是全局的,而不像python中那样是特定于模块的,所以不需要导入任何东西。
如果您想扩展/覆盖您的设置对象,您可以例如使用jQuery的$.extend()
方法:
var currentSettings = $.extend(true, {}, settings, localSettings);
答案 1 :(得分:0)
我不确定您要将哪种设置导出到js以及为什么。在任何情况下,如果你想这样做,我想最简单的是在django中有一个json视图,为你的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