我正在尝试使用maven和这个插件自动压缩CSS和JS .我想在执行目标战时压缩,但我不知道如何:
<build>
<finalName>${artifactId}-${version}-production</finalName>
<plugins>
<plugin>
<groupId>net.sf.alchim</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<configuration>
<gzip>true</gzip>
<nosuffix>true</nosuffix>
</configuration>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud) 我目前正在将项目迁移到Visual Studio 2010,并试图弄清楚如何在构建时单独缩小JS和CSS文件.
在Visual Studio 2008中,我使用了Web部署项目,其中的构建任务引用了YUI Compressor的C#端口.在Visual Studio 2010中,Web部署项目似乎已集成到构建过程中.现在有这个微软AJAX Minifier在公共测试版中,我比以前更加困惑.
我找到了这篇博文,由于CSS的限制,这使得微软AJAX Minifier的业务不具备启动性.这应该不会令人困惑......它应该是Visual Studio 2010中的复选框.
使用Visual Studio 2010有一种简单的方法吗?我在这里想念的是什么人?
minify visual-studio-2010 yui-compressor microsoft-ajax-minifier
我正在开发一个大型.NET项目.我目前正在使用YUI压缩器为JS和CSS文件创建自动缩小器.在做了一些研究之后,我发现项目中最重的文件实际上是.NET资源(就像MS ajax文件一样).他们非常大而且没有陌生化.
我想知道,有什么办法可以缩小它们吗?
谢谢
我试图弄清楚如何在整个目录上运行yui压缩器.我想将目录压缩到另一个名为compressed的目录.
有什么建议?
我在现有项目中使用Symfony2和assetic,我无法弄清楚如何在CSS中引用图像.我把我的图片放在:src/Organisation/MyBundle/Resources/public/images/
运行资产安装后: php app/console assets:install public
我可以在浏览器中正确加载它们: http://sitename/bundles/organisationmy/images/logo.png
但是,当我尝试在CSS中指向它们时,使用: url('/bundles/organisationmy/images/logo.png')
用firebug检查,url变为:url('/web/bundles/organisationmy/images/logo.png')并且导致404.
在我的主模板中,我有:
{% stylesheets filter='yui_css' output='css/output.css'
'@MyBundle/Resources/public/css/bootstrap.min.css'
'@MyBundle/Resources/public/css/bootstrap-responsive.min.css'
'@MyBundle/Resources/public/css/my.css'
%}
Run Code Online (Sandbox Code Playgroud)
在config.yml我有:
assetic:
debug: %kernel.debug%
use_controller: false
java: /usr/bin/java
filters:
cssrewrite: ~
yui_css:
jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar
yui_js:
jar: %kernel.root_dir%/java/yuicompressor-2.4.7.jar
Run Code Online (Sandbox Code Playgroud)
在routing.yml我有:
_assetic:
resource: .
type: assetic
Run Code Online (Sandbox Code Playgroud)
我已经看到了这个问题Symfony2 - Assetic - 在CSS中加载图像,但我不知道我是否以及如何使用filter='cssrewrite',filter='yui_css'同时或如何解决问题.
基本上,如果我可以阻止Symfony2前缀我的CSS图像路径/web/问题将得到解决.或者,是否有人知道在Symfony2中解决此问题的正确方法是什么?
更新:我注意到即使我把url('something.png')放在我加载页面时CSS也不再更新,所以我可能用命令行弄乱了一些东西,我也给了命令喜欢php app/console assetic:dump- 如何回到修改CSS并重新加载页面的正常开发风格?
更新2:我发现php app/console assetic:dump --watch在资产发生变化时会自动更新资产.
我在production.rb中有以下配置
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Compress JavaScripts and CSS
config.assets.compress = true
# Choose the compressors to use
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :yui
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)
但是当生产服务器上的ruby on rails应用程序出现以下错误:
Error compiling CSS asset
LoadError: cannot load such file -- yui-compressor
Run Code Online (Sandbox Code Playgroud)
在评论线上LoadError: cannot load such …
我使用Yahoo.Yui.Compressor.Build.MsBuild来压缩css和javascript文件.我已经安装了Yahoo.Yui.Compressor.Build.MsBuild 2.2和xml文件的格式
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
<UsingTask
TaskName="CompressorTask"
AssemblyFile="..\..\lib\yui\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
<PropertyGroup>
<JavaScriptOutputFile Condition=" '$(JavaScriptOutputFile)'=='' ">..\scripts-min\myfile.min.js</JavaScriptOutputFile>
</PropertyGroup>
<Target Name="MyTaskTarget">
<ItemGroup>
<JavaScriptFiles Include="$(SourceLocation)..\scripts\myfile.js"/>
</ItemGroup>
<CompressorTask
CssFiles="@(CssFiles)"
DeleteCssFiles="false"
CssOutputFile="$(CssOutputFile)"
CssCompressionType="YuiStockCompression"
JavaScriptFiles="@(JavaScriptFiles)"
ObfuscateJavaScript="True"
PreserveAllSemicolons="False"
DisableOptimizations="Nope"
EncodingType="Default"
DeleteJavaScriptFiles="false"
LineBreakPosition="-1"
JavaScriptOutputFile="$(JavaScriptOutputFile)"
LoggingType="ALittleBit"
ThreadCulture="en-au"
/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
当我构建代码然后它显示以下错误
Error 18 The "CompressorTask" task could not be loaded from the assembly D:\Projects\YUI\..\..\lib\yui\Yahoo.Yui.Compressor.Build.MsBuild.dll. Could not load file or assembly 'Yahoo.Yui.Compressor, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null'or one of its dependencies. The system cannot find …Run Code Online (Sandbox Code Playgroud) 我读过一些人说如果你结合然后缩小会有问题,你应该总是缩小然后合并(参见例如关于这个问题的评论.)但是,我从未见过这些问题的例子我自己是或是遇到过他们.我也找不到YUI开发人员的任何官方说明最佳做法.
我正在使用BundleTransformer缩小css和js资源
<yui>
<css compressionType="Standard" removeComments="true" lineBreakPosition="-1" />
<js compressionType="Standard" obfuscateJavascript="true" preserveAllSemicolons="false" disableOptimizations="false" ignoreEval="false" severity="0" lineBreakPosition="-1" encoding="UTF8" threadCulture="en-us" />
</yui>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样css可以指定removeComments="true"
但是js没有这样的选择.
我认为YUI js压缩器默认删除注释.是的,有点删除,但它仍然留下这样的评论:
/* NUGET: BEGIN LICENSE TEXT
*
*Bla bla bla
*
* NUGET: END LICENSE TEXT */
/*!
* Bla
* Licensed under http://www.apache.org/licenses/LICENSE-2.0
*/
Run Code Online (Sandbox Code Playgroud)
看起来没有办法强迫YIU js minifier删除评论.
https://github.com/yui/yuicompressor:
以/*开头的C风格评论!保存完好.这对包含版权/许可证信息的评论很有用
有没有什么我可以通过使用BundleTransformer完全删除捆绑的缩小输出文件中的所有类型的注释?谷歌页面速度强烈建议我这样做.
javascript yui-compressor bundling-and-minification bundletransformer asp.net-mvc-5
我想排除一个包含一组javascript文件的文件夹,YUI压缩器无法编译并输出错误.我正在尝试使用<exclude>folder</exclude>标签,这是不工作的 - YUI仍在尝试压缩文件夹中的文件.
下面是我的pom配置:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<id>compressyui</id>
<phase>process-resources</phase>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<nosuffix>true</nosuffix>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<jswarn>false</jswarn>
<sourceDirectory>src/main/webapp/js-max</sourceDirectory>
<webappDirectory>src/main/webapp</webappDirectory>
<outputDirectory>src/main/webapp/js</outputDirectory>
<force>true</force>
<excludes>
<!-- yuicompressor fails to compile patterns library, hence stopping full build -->
<!-- We won't be modifying this library so will exclude it for now -->
<exclude>src/main/webapp/js-max/patterns/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
知道怎么做到这一点?