对于在那里遇到类似问题的任何人,这是我在 Visual Studio 2010 的上下文中选择的分步方法(已经用完了替代解决方案)。下面的方法处理统一中的 javascript 文件的缩小在尊重您可能使用的版本控制系统的同时(通过避免在其托管的文件中生成幻像更改)。以下是步骤:
安装 Java 和 Google 的 Closure(用于 javascript 缩小)。
打开项目的资源,转到文件资源并创建一个虚拟文件属性 a-la foo.txt。这应该在您的项目中创建并包含名为 Resources 的目录。您可以在此之后删除 foo.txt 文件。
右键单击 Resources 目录并创建一个以 Uniminified.js 结尾的 javascript 文件(例如 MyInjectableJavascript.Unminified.js)。编辑此文件的属性并确保构建操作设置为“无”。顺便说一句,不要在资源中引用这个文件。
现在回到资源的文件属性并添加一个新的文件属性,它与上面创建的文件的基本名称相同,只是这次以 min.js 结尾(例如 MyInjectableJavascript.min.js)。
转到在资源目录下创建的 .min.js 文件并将其转换为嵌入式资源。
现在转到项目的属性 -> 构建事件并插入以下代码:
预构建事件(一行):
call "$(ProjectDir)JavascriptMinificationWithGoogleClosure.bat" "$(ProjectDir)Resources\MyInjectableJavascript.Unminified.js" "$(ProjectDir)Resources\MyInjectableJavascript.min.js"
构建后事件(两行):
del "$(ProjectDir)Resources\MyInjectableJavascript.min.js"
call echo. 2> "$(ProjectDir)Resources\MyInjectableJavascript.min.js"
它的作用是在构建项目之前缩小 javascript 代码,在构建之后将缩小的文件重置为单个换行符。
注意:我们不一起删除缩小文件的原因是,如果找不到资源引用的缩小文件(在我的情况下,Visual Studio 删除了 Resources. Designer.cs 完全出乎意料... 5 次)。通过将 min.js 文件截断为单个换行符,您可以保留它,甚至可以将其添加到您的版本控制系统中,而无需再打扰它。
在您的项目目录下放置一个名为 JavascriptMinificationWithGoogleClosure.bat 的文件,其内容如下:
"%JAVA_HOME%jre6\bin\java" -jar "%CLOSURE_JS_HOME%compiler.jar" --js %1 --js_output_file %2
最后,创建两个名为 JAVA_HOME 和 CLOSURE_JS_HOME 的环境变量(右键单击计算机 -> 属性 -> 环境变量),它们分别指向您安装 Java 和 Closure 的可执行文件的目录。例如:
JAVA_HOME -> C:\Program Files\Java\
CLOSURE_JS_HOME -> C:\Program Files\Closure\
注意:确保在两条路径的末尾都包含斜杠。
希望这可以帮助。祝你好运。
干杯,多米尼克