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项目中的本地设置的主要内容,如果未能解决你的问题,请参考以下文章

记录速度 javascript

如何避免“访问控制允许标头不允许请求标头字段授权”从本地驱动器运行 JavaScript? [复制]

JavaScript获取未知类的结构

无法重置布尔值 - Javascript

设置页面的所有链接目标

JavaScript - 对象