sal*_*iza 24 javascript visual-studio-2010
我有一个Scripts文件夹,其中包含项目中使用的所有.js文件.使用Ajax Minifier任务,我为每个任务生成.min.js文件.根据应用程序是在调试模式还是在发布模式下运行,我包含原始.js文件或缩小文件.
Scripts文件夹如下所示:
Scripts/script1.js
Scripts/script1.min.js // Outside the project, generated automatically on build
Scripts/script2.js
Scripts/script2.min.js // Outside the project, generated automatically on build
Run Code Online (Sandbox Code Playgroud)
.min.js文件位于项目之外(尽管与原始文件位于同一文件夹中),并且在我们发布项目时它们不会复制到目标文件夹中.
我没有任何使用构建任务的经验(除了包括minifier任务),所以如果有人能告诉我哪个是正确的方法,我将不胜感激:
谢谢,
编辑:从回复中,我看到我错过了一些细节,也许我正在寻找错误的问题解决方案.我将在问题中添加以下详细信息:
Eam*_*nne 20
编辑(2012年10月): ASP.NET 4.5现在包括捆绑和缩小.当前版本不能很好地支持动态javascript生成,但它在其他方面非常有用,例如,如下所述,它会监视文件系统的实时更改; 在滚动自己的压缩之前,试试吧!
老答案:
我建议你在运行时这样做,而不是在构建时实现它.这有许多优点:
这是我遵循的流程的大致轮廓:
FileSystemWatcher监视更改的内容.00_jquery.js 10_init.js等帮助控制命令).存储文件名列表以进行调试.GZipStream.特定于版本的标记由最新的最后修改日期或结果的散列计算.lock).如果文件系统观察程序检测到更新,则步骤2再次启动并在后台运行,直到压缩完成 - 因此锁定.IHttpHandler.所有Uri都在查询字符串中包含特定于版本的标记 - IIS静态文件处理程序和组合缩小版本的自定义http处理程序都会忽略它,但使缓存变得容易.context.Response.OutputStream.使用该方法,无论何时添加或删除脚本文件,都不需要使用web.config选项; 你可以同时应用程序正在运行和客户端将这些要求在第二天页面视图更新脚本 - 但是你仍然会得到最佳的高速缓存行为,因为浏览器甚至不会发送如果-未修改的请求因期满头.一般,压缩脚本应该采取一秒钟左右,压缩结果应该是如此之小,静态变量的内存开销是可以忽略的(至多几个100 KB为一个真正大量的脚本/ CSS的).
如果你想通过Visual Studio进行Javascript缩小,这将让你入门:http://encosia.com/2009/05/20/automatically-minify-and-combine-javascript-in-visual-studio/
否则,我建议一个可以自动组合和缩小Javascript的工具.我看过的两个工具是Justin Etheredge的Bundler和Combres.我在我当前的项目中使用Bundler,我的一位同事正在使用Combres.Bundler使用起来有点简单,但它比Combres要少.使用Bundler,如果在web.config中关闭了调试,那么它不会缩小和组合,这意味着您可以在开发环境中调试javascript.
PS Bundler更名为SquishIt.
| 归档时间: |
|
| 查看次数: |
20824 次 |
| 最近记录: |