2010-07-21 53 views
5

许多人都知道,现在大多数jQuery(或JavaScript,)这些日子可以下载为定期格式化代码,缩小版本,或两者。出于开发目的,我喜欢使用插件的非缩小版本,以防因为某种原因需要设置Firebug断点或查看它。我应该在开发和部署期间使用jQuery插件的缩小或常规版本吗?

现在,当我打包我的应用并部署它时,为了效率的缘故,我宁愿切换到插件的缩小版本。我知道要做到这一点的唯一方法是有两个版本,然后手动更改我的视图中的所有引用(我使用MVC)指向缩小版本,然后打包和部署。理想情况下,我会缩小(也可能混淆)我自己的JavaScript文件。

有谁知道更好,更有效的方式来开发与非缩小插件(为了便于阅读)和部署与缩小版本(效率)?你可以指出我谈论的任何文章吗?我对于如何处理JavaScript部署很新,并且可能会习惯于最佳实践。

谢谢。

+0

你可以使用相同的文件名,并在你的开发环境中只有非最小版本... – Fosco 2010-07-21 16:28:15

回答

4

我倾向于总是使用第三方JS的缩小版本,除非我特别需要查看它......在任何情况下,您都可以编写一个html helper,根据某些配置插入正确的脚本名称(可以是调试VS发布)...

你最终会得到这样的:

<%= Html.IncludeJQuery() %> 

,或者如果所有的脚本遵循同样的约定(缩小的版本.min.js)做插入一个帮手'.min'表示您通过的脚本是发行时的版本

​​

更新:

HTML辅助,是扩展方法,MVC的HtmlHelper类,你可以用它来发出ActionLink的,BeginForm,EditorFor,等你基本上附加的新方法(albiet仅限静态)到该对象所以你可以做Html.MyMethod ....一个这个助手是一些像:

public static class ScriptIncludeHelper 
{ 
    public static MvcHtmlString IncludeCorrectVersionOfScript(this HtmlHelper html, string script) 
    { 
     if (!html.ViewContext.HttpContext.IsDebuggingEnabled) 
      script = script.Replace(".js", ".min.js"); 
     var tag = string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>", script); 

     return MvcHtmlString.Create(tag); 
    } 
} 

请注意,这是非常简化的版本(无串的验证,etc.etc.etc)

现在你可以使用IsDebuggingEnabled或配置文件在你的web.config或静态配置来定义,如果你想包括调试版本的最小化版本...

跳这有助于

+0

我很好奇。我已经阅读了一些关于HTML帮助者的内容,但我不完全清楚。帮手会做什么?检查调试与释放编译符号,然后包含正确的文件?它如何知道要包含哪些文件?也许你可以在你的答案中详细说明一下... – 2010-07-21 17:04:40

1

这是Rails的如何处理它的一个例子。这可能是也可能不是最佳做法,但完全消除了开发人员的负担。

包含设置为每个环境中的配置文件:

# resources.yml 
# example config file 

development: 
    jquery_url: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js 

test: 
    jquery_url: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js 

production: 
    jquery_url: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js 

解析根据当前环境的资源成被到处引用在应用程序启动的变量。

RESOURCES = YAML::parse('resources.yml')[CURRENT_ENVIRONMENT] 

然后使用被包含在所有页面的基地布局或模板,而不必每个视图或页面指定它自己的设置。<%= yield %>表示来自子视图或页面的输出已经到达那里。

# application.html.erb 

<!DOCTYPE html> 
<html 
<head> 
    <script src="<%= RESOURCES['jquery_url'] %>"</script> 
</head> 
<body> <% yield %> </body> 
</html> 

那么你只需要改变一个关键 - CURRENT_ENVIRONMENT(开发,测试或生产)引发的一切。它对于API密钥和所有其他类型的依赖项也很有用,这些依赖项在环境之间已经或可能会发生变化。

+0

这个问题被标记为asp.net-mvc ...这是如何与Rails链接的? – serhio 2014-02-25 10:15:08

相关问题