代码之家  ›  专栏  ›  技术社区  ›  Robban

根据应用程序设置有选择地输出javascript的好方法

  •  1
  • Robban  · 技术社区  · 14 年前

    我正在开发一个网站,其中包括几个不同的javascript文件和库。出于优化的目的,我已经实现了 YUI Compressor for .Net

    这将最小化我的javascript文件并将其合并为一个文件。

    现在我已经把它放到了一个msbuild脚本中,该脚本会自动进行压缩和最小化,并将其输出到我选择的文件中。但是,我仍然希望在开发环境中保留原始javascript文件。我的问题很简单:

    有没有一种好的方法可以依赖于调试设置,例如选择使用哪个javascript?这不必每次我发布构建时都手动更改母版页。

    请允许我举例说明。

    如果我在debug=“true”中运行,我希望母版页包含以下Javascripts:

    <script type="text/javascript" src="first.js"></script>
    <script type="text/javascript" src="second.js"></script>
    <script type="text/javascript" src="third.js"></script>
    <script type="text/javascript" src="fourth.js"></script>
    

    如果我在debug=“false”中运行,我希望在母版页中输出:

    <script type="text/javascript" src="compressedAndMinimized.js"></script>
    

    有没有一个优雅的解决方案,我在这里失踪?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Community Egal    7 年前

    您可以使用预处理器:

    <% #if(DEBUG) %>
        <script type="text/javascript" src="first.js"></script>
        <script type="text/javascript" src="second.js"></script>
        <script type="text/javascript" src="third.js"></script>
        <script type="text/javascript" src="fourth.js"></script>
    <% #else %>
        <script type="text/javascript" src="compressedAndMinimized.js"></script>
    <% #endif %>
    

    在我的项目中,我在一个环境变量中定义了平台(例如“local”、“development”、“beta”和“production”),并通过一个配置类访问它,但我想检查调试/发布模式也可以。

    编辑

    根据 #DEBUG Preprocessor statements in ASPX page ,aspx文件中使用的调试变量是从web.config中提取的,而不是从项目的当前生成配置中提取的。这可能对您仍然可用,但部署脚本在部署到生产环境时需要更改web.config。

        2
  •  0
  •   Paul Manzotti    14 年前

    不能为不运行压缩器的开发计算机使用其他msbuild脚本吗?