我正在运行jsmin来将我的ASP.Net web应用程序的所有javascript文件压缩为csproj文件中的postbuild事件,如下所示:
"JsMin.exe“”$(ProjectDir)脚本“"$(ProjectDir)script\minified.js”
当我将所有js文件保存在脚本文件夹的根目录中时,这是很好的。但是当它开始成为这个文件夹中的大量文件时,我决定把文件分成子文件夹。现在看来,jsmin只获取根文件夹中的js文件,我看不出它有任何将文件包含在子文件夹中的选项。对于这种情况,有没有人有一个好的解决方案?在我看来,这应该是一件很普通的事情,所以这就是为什么我对它不是jsmin.exe支持子文件夹的参数感到有点惊讶的原因。
发布于 2010-12-20 15:47:20
您应该能够使用DOS的for命令这样做:
for /R "$(ProjectDir)scripts/debug" %s in (*.js) do JsMin.exe %s > "$(ProjectDir)scripts/release/%~ns.min.js"这假设脚本位于(或在目录中)一个名为~/ scripts /debug的目录中,并将它们缩小到~/scripts/release,由.js替换为.min.js。
我已经在CMD中测试过这一点,但在VS中没有作为构建事件进行测试。因此,您可能需要稍微修改一下语法。
发布于 2016-02-12 18:06:28
派对有点晚了,但下面是戴夫·沃德建议递归缩小javascript文件的代码。
下面是使用构建事件移植的代码:
for /r "$(ProjectDir)scripts" %%s in (*.js) do $(SolutionDir)tools\jsmin.exe < %%s > "$(ProjectDir)debug\%%~ns.min.js"
type "$(ProjectDir)debug\*.min.js" | "$(SolutionDir)tools\jsmin.exe" > "$(ProjectDir)release\local.min.js"
del "$(ProjectDir)debug\*.min.js"上面的代码递归所有脚本的脚本文件夹(根和子目录),并将它们放在调试文件夹中(只要您已经设置了对它的读/写权限,并且它与您正在递归的目录结构无关),这可以是您目录中的任何其他文件夹。然后,它对调试目录中的所有*.min.js进行细化,然后清除它们。我搜索了一下网络,试图找到这个解决方案,但是找不到,所以我希望这能帮助需要帮助的人:)
https://stackoverflow.com/questions/4490733
复制相似问题