javascript项目中的本地设置
Posted
技术标签:
【中文标题】javascript项目中的本地设置【英文标题】:Local settings in javascript project 【发布时间】:2012-03-23 06:39:09 【问题描述】:我正在使用使用大量全局设置的主干开发一个开源 javascript 项目。对于本地开发,我们希望每个开发人员都能够设置自己的设置,但我们希望它存在于单独的文件中,以便我们可以使用 .gitignore 将其从存储库中排除。
我来自 Django 背景,约定是有一个 settings.py 和 local_settings.py ,其中 settings.py 只是做一些类似的事情:
try:
from local_settings import *
except:
pass
本地设置是否有等效的 javascript 约定?
【问题讨论】:
【参考方案1】:是的,只需创建一个包含所有设置的全局对象(如果您有的话,也可以是您的命名空间的本地对象):
var settings =
...
;
由于全局变量在 JavaScript 中确实是全局变量,而不是像 python 中那样特定于模块,因此无需导入任何内容。
如果你想扩展/覆盖你的设置对象,你可以例如使用 jQuery 的$.extend()
方法:
var currentSettings = $.extend(true, , settings, localSettings);
【讨论】:
那么 localSettings 对象应该存在于它自己的 javascript 文件中吗?如果是这样,如果用户没有创建 localSettings.js,你如何确保它被加载到全局命名空间中而不会导致错误? 在哪个文件中都没有关系。如果它可能未定义:typeof localSettings == 'undefined' ? : localSettings
【参考方案2】:
我不确定您希望将哪种设置导出到 js 以及为什么。无论如何,如果您想这样做,我想最简单的方法是在 django 中有一个 json 视图,为您的 javascript 提供设置。这样至少你可以有一个地方来存储设置。
我不是 Django 开发人员,但我猜是这样的
from json import dumps
from django.http import HttpResponse
...
def json_settings(request):
json = dumps(local_settings)
return HttpResponse(json, mimetype='application/json')
会做这项工作。然后您可以通过调用$.getJSON
获取这些设置
【讨论】:
对不起,我可能不清楚这纯粹是一个 javascript 项目,而且我恰好来自 Django 背景。不过,如果我确实需要与 Django 项目集成并执行类似的操作,感谢您提出的有趣想法。以上是关于javascript项目中的本地设置的主要内容,如果未能解决你的问题,请参考以下文章