


win7下,Ant 配合yuicompressor對(duì)js和css進(jìn)行合并、壓縮、拷貝處理_html/css_WEB-ITnose
Jun 24, 2016 am 11:46 AM
本文基于windows7系統(tǒng),mac上或許更簡(jiǎn)單些。本文參閱了無(wú)墨來(lái)點(diǎn)睛的文章,再此說(shuō)明。
花了點(diǎn)時(shí)間,總算是試驗(yàn)成功,demo地址:http://pan.baidu.com/s/1c0dGm1i
ant可以去官網(wǎng)下載,地址是:http://ant.apache.org/?,yuicompressor也可以去官網(wǎng)下一個(gè)https://github.com/yui/yuicompressor
demo的使用的ant版本是apache-ant-1.8.2,yuicompressor版本是yuicompressor-2.4.6。
另外由于ant是需要java運(yùn)行環(huán)境的(一開(kāi)始沒(méi)看ant的說(shuō)明,為此浪費(fèi)了些時(shí)間),1.8的版本至少需要1.4的java jdk,可以從這里查閱:http://ant.apache.org/faq.html
java環(huán)境可以到官網(wǎng)下載,地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,請(qǐng)先安裝java環(huán)境,然后配置java的環(huán)境變量,
配置好后可在cmd-》dos下輸入java,查閱是否安裝成功。然后配置ant的環(huán)境變量,配置好后,同樣測(cè)試是否安裝成功,cmd->dos->輸入ant,出現(xiàn)類似下面的內(nèi)容表示
安裝成功:
到此環(huán)境才配置成功。下面看demo結(jié)構(gòu)
我這是在vs里面建的小工程,僅僅是為了編寫(xiě)build的xml文件而已,再次說(shuō)明,僅僅為編寫(xiě)xml,你完全可以自己手動(dòng)在文件夾中做的。
其中核心的是build.xml文件,結(jié)構(gòu)如下:
<?xml version="1.0" encoding="utf-8"?><project default="compress" basedir="F:\js\cc\deploymentTes\web" name="core"> <!-- 項(xiàng)目的 web 路徑 --> <property name="path" value="F:\js\cc\deploymentTes\web"></property> <!-- 部署的輸出路徑 --> <property name="targetDir" value="F:\js\cc\deploymentTes\build_output\asset"></property> <!-- 源文件路徑(src) --> <property name="code.src" value="src"></property> <!-- !!! YUI Compressor 路徑 !!! --> <property name="yuicompressor" value="F:\js\cc\deploymentTes\build\yuicompressor-2.4.6\build\yuicompressor-2.4.6.jar"></property> <!-- ================================= target: concat 拼接(合并)文件 ================================= --> <target name="concat" depends="" description="concat code"> <echo message="Concat Code Files Begin!!!"></echo> <!-- JS --> <concat destfile="${targetDir}/js/all.js" encoding="utf-8" fixlastline="on"> <fileset dir="${code.src}/js" includes="jquery-1.10.2.js"></fileset> <fileset dir="${code.src}/js" includes="jquery-ui.js"></fileset> </concat> <!-- CSS --> <concat destfile="${targetDir}/css/all.css" encoding="utf-8"> <fileset dir="${code.src}/css" includes="jquery-ui.css"></fileset> <fileset dir="${code.src}/css" includes="jquery-ui.theme.css"></fileset> </concat> <echo message="Concat Code Files Finished!!!"></echo> </target> <!-- ================================= target: copy 拷貝文件 ================================= --> <target name="copy_asset" depends="concat" description="copy the asset file"> <echo message="Copy Asset Begin"></echo> <!-- main.html --> <copy todir="${targetDir}/" overwrite="true"> <fileset dir="${path}/" includes="*.html"></fileset> </copy> <!-- img *.png --> <copy todir="${targetDir}/img" overwrite="true"> <fileset dir="${path}/asset/img" includes="*.png"></fileset> </copy> <echo message="Copy Asset Finished"></echo> </target> <!-- ================================= target: compress 壓縮 js && css ================================= --> <target name="compress" depends="copy_asset" description="compress code"> <echo message="Compress Code Begin"></echo> <apply executable="java" parallel="false" failonerror="true" dest="${targetDir}/js"> <fileset dir="${targetDir}/js" includes="*.js"></fileset> <arg line="-jar"></arg> <arg path="${yuicompressor}"></arg> <arg line="--charset utf-8"></arg> <arg line="-o"></arg> <targetfile></targetfile> <mapper type="glob" from="*.js" to="*.min.js"></mapper> </apply> <apply executable="java" parallel="false" failonerror="true" dest="${targetDir}/css"> <fileset dir="${targetDir}/css" includes="*.css"></fileset> <arg line="-jar"></arg> <arg path="${yuicompressor}"></arg> <arg line="--charset utf-8"></arg> <arg line="-o"></arg> <targetfile></targetfile> <mapper type="glob" from="*.css" to="*.min.css"></mapper> </apply> <echo message="Compress Code Finished"></echo> <echo message="Clean Begin"></echo> <!--<delete verbose="false" failonerror="true"> <fileset dir="${path}" includes="${targetDir}/*-o.js" /> </delete>--> <echo message="Clean Finished"></echo> </target></project>build.bat的批處理文件是為了調(diào)用ant的,它的內(nèi)容是:
./apache-ant-1.8.2/bin/ant -f ./build.xml是要運(yùn)行bat文件即可,至于ant和yuicompressor xml語(yǔ)法解析說(shuō)明,可以看文檔,非常詳細(xì),而且你下載的demo里面有詳細(xì)使用說(shuō)明:
下面摘錄的是yuicompressor的readme:
==============================================================================YUI Compressor==============================================================================NAME YUI Compressor - The Yahoo! JavaScript and CSS CompressorSYNOPSIS Usage: java -jar yuicompressor-x.y.z.jar [options] [input file] Global Options -h, --help Displays this information --type <js> Specifies the type of the input file --charset <charset> Read the input file using <charset> --line-break <column> Insert a line break after the specified column number -v, --verbose Display informational messages and warnings -o <file> Place the output into <file> or a file pattern. Defaults to stdout. JavaScript Options --nomunge Minify only, do not obfuscate --preserve-semi Preserve all semicolons --disable-optimizations Disable all micro optimizationsDESCRIPTION The YUI Compressor is a JavaScript compressor which, in addition to removing comments and white-spaces, obfuscates local variables using the smallest possible variable name. This obfuscation is safe, even when using constructs such as 'eval' or 'with' (although the compression is not optimal is those cases) Compared to jsmin, the average savings is around 20%. The YUI Compressor is also able to safely compress CSS files. The decision on which compressor is being used is made on the file extension (js or css)GLOBAL OPTIONS -h, --help Prints help on how to use the YUI Compressor --line-break Some source control tools don't like files containing lines longer than, say 8000 characters. The linebreak option is used in that case to split long lines after a specific column. It can also be used to make the code more readable, easier to debug (especially with the MS Script Debugger) Specify 0 to get a line break after each semi-colon in JavaScript, and after each rule in CSS. --type js|css The type of compressor (JavaScript or CSS) is chosen based on the extension of the input file name (.js or .css) This option is required if no input file has been specified. Otherwise, this option is only required if the input file extension is neither 'js' nor 'css'. --charset character-set If a supported character set is specified, the YUI Compressor will use it to read the input file. Otherwise, it will assume that the platform's default character set is being used. The output file is encoded using the same character set. -o outfile Place output in file outfile. If not specified, the YUI Compressor will default to the standard output, which you can redirect to a file. Supports a filter syntax for expressing the output pattern when there are multiple input files. ex: java -jar yuicompressor.jar -o '.css$:-min.css' *.css ... will minify all .css files and save them as -min.css -v, --verbose Display informational messages and warnings.JAVASCRIPT ONLY OPTIONS --nomunge Minify only. Do not obfuscate local symbols. --preserve-semi Preserve unnecessary semicolons (such as right before a '}') This option is useful when compressed code has to be run through JSLint (which is the case of YUI for example) --disable-optimizations Disable all the built-in micro optimizations.NOTES + If no input file is specified, it defaults to stdin. + Supports wildcards for specifying multiple input files. + The YUI Compressor requires Java version >= 1.4. + It is possible to prevent a local variable, nested function or function argument from being obfuscated by using "hints". A hint is a string that is located at the very beginning of a function body like so: function fn (arg1, arg2, arg3) { "arg2:nomunge, localVar:nomunge, nestedFn:nomunge"; ... var localVar; ... function nestedFn () { .... } ... } The hint itself disappears from the compressed file. + C-style comments starting with /*! are preserved. This is useful with comments containing copyright/license information. For example: /*! * TERMS OF USE - EASING EQUATIONS * Open source under the BSD License. * Copyright 2001 Robert Penner All rights reserved. */ becomes: /* * TERMS OF USE - EASING EQUATIONS * Open source under the BSD License. * Copyright 2001 Robert Penner All rights reserved. */MODIFIED RHINO FILES YUI Compressor uses a modified version of the Rhino library (http://www.mozilla.org/rhino/) The changes were made to support JScript conditional comments, preserved comments, unescaped slash characters in regular expressions, and to allow for the optimization of escaped quotes in string literals.COPYRIGHT AND LICENSE Copyright (c) 2011 Yahoo! Inc. All rights reserved. The copyrights embodied in the content of this file are licensed by Yahoo! Inc. under the BSD (revised) open source license.</file></file></column></charset></charset></js>
ps,在網(wǎng)上也找了個(gè)在線的,地址是:http://ganquan.info/yui/?hl=zh-CN
另附相關(guān)文章供各位道友學(xué)習(xí):
? ? ?使用ANT和YUI壓縮js
? ??ant和yuicompressor 壓縮css、js方案

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Atribut peranan Aria digunakan untuk menentukan peranan elemen web dan meningkatkan kebolehcapaian. 1. Atribut Peranan membantu teknologi bantuan untuk memahami fungsi elemen, seperti butang, navigasi, dan lain-lain. 2. Gunakan atribut peranan untuk menetapkan peranan tertentu kepada unsur-unsur HTML yang tidak semantik. 3. Atribut peranan harus konsisten dengan tingkah laku elemen dan disahkan oleh ujian alat kebolehaksesan.

Bagaimana untuk membuat susun atur laman web? 1. Gunakan tag HTML untuk menentukan struktur kandungan, seperti,. 2. Gaya kawalan dan kedudukan melalui CSS, menggunakan model kotak, float atau flexbox. 3. Mengoptimumkan prestasi, mengurangkan permintaan HTTP, menggunakan cache dan mengoptimumkan imej, dan memastikan reka bentuk responsif.

Meningkatkan kebolehbacaan dan penyelenggaraan kod HTML boleh dicapai melalui langkah -langkah berikut: 1. Gunakan tag semantik, seperti, dan lain -lain untuk menjadikan struktur kod jelas dan meningkatkan kesan SEO; 2. Pastikan kod diformat dan gunakan lekukan dan ruang yang konsisten; 3. Tambah komen yang sesuai untuk menerangkan niat kod; 4. Elakkan bersarang yang berlebihan dan memudahkan struktur; 5. Gunakan helaian gaya luaran dan skrip untuk memastikan HTML ringkas.

Kunci untuk bersaing dengan piawaian HTML dan amalan terbaik adalah dengan sengaja dan bukannya mengikutinya secara membuta tuli. Pertama, ikuti ringkasan atau kemas kini log sumber rasmi seperti WHATWG dan W3C, memahami tag baru (seperti) dan atribut, dan menggunakannya sebagai rujukan untuk menyelesaikan masalah yang sukar; Kedua, melanggan surat berita pembangunan web yang dipercayai dan blog, menghabiskan 10-15 minit seminggu untuk melayari kemas kini, memberi tumpuan kepada kes penggunaan sebenar dan bukan hanya mengumpul artikel; Kedua, gunakan alat pemaju dan linter seperti htmlhint untuk mengoptimumkan struktur kod melalui maklum balas segera; Akhirnya, berinteraksi dengan komuniti pemaju, berkongsi pengalaman dan mempelajari kemahiran praktikal orang lain, untuk terus meningkatkan kemahiran HTML.

Alasan untuk menggunakan tag adalah untuk memperbaiki struktur semantik dan kebolehcapaian laman web, memudahkan pembaca skrin dan enjin carian untuk memahami kandungan halaman, dan membolehkan pengguna dengan cepat melompat ke kandungan teras. Berikut adalah perkara utama: 1. Setiap halaman harus mengandungi hanya satu elemen; 2. Ia tidak boleh memasukkan kandungan yang diulangi di seluruh halaman (seperti sidebars atau footers); 3. Ia boleh digunakan bersempena dengan sifat Aria untuk meningkatkan kebolehcapaian. Biasanya terletak selepas dan sebelum ini, ia digunakan untuk membungkus kandungan halaman yang unik, seperti artikel, bentuk atau butiran produk, dan harus dielakkan, atau masuk; Untuk meningkatkan kebolehcapaian, ARIA-Labeledby atau Aria-label boleh digunakan untuk mengenal pasti bahagian-bahagian dengan jelas.

Untuk membuat dokumen HTML asas, anda perlu memahami struktur asasnya dan menulis kod dalam format standard. 1. Gunakan jenis dokumen pengisytiharan pada mulanya; 2. Gunakan tag untuk membungkus keseluruhan kandungan; 3. Termasuk dan dua bahagian utama di dalamnya, yang digunakan untuk menyimpan metadata seperti tajuk, pautan lembaran gaya, dan lain-lain, dan termasuk kandungan pengguna yang kelihatan seperti tajuk, perenggan, gambar dan pautan; 4. Simpan fail dalam format .html dan buka kesan tontonan dalam penyemak imbas; 5. Kemudian anda secara beransur -ansur boleh menambah lebih banyak elemen untuk memperkayakan kandungan halaman. Ikuti langkah -langkah ini untuk membina laman web asas dengan cepat.

Htmltagsareessentialforstructuringwebpages.theydefineContentandlayoutusingingleBrackets, serentakinpairslikeand, withsomebeingselfike.htmltagsarecrucialforcialforcreatingsured, diakses, andseo-friendlywebpages.

Untuk membuat kotak semak HTML, gunakan atribut Jenis untuk menetapkan elemen kotak semak. 1. Struktur asas termasuk tag ID, nama dan label untuk memastikan bahawa teks mengklik boleh menukar pilihan; 2. Kotak semak yang berkaitan dengan pelbagai hendaklah menggunakan nama yang sama tetapi nilai yang berbeza, dan bungkusnya dengan Fieldset untuk meningkatkan kebolehcapaian; 3. Sembunyikan kawalan asli apabila menyesuaikan gaya dan gunakan CSS untuk mereka bentuk elemen alternatif sambil mengekalkan fungsi lengkap; 4. Pastikan ketersediaan, label pasangan, sokongan navigasi papan kekunci, dan elakkan bergantung pada hanya arahan visual. Langkah -langkah di atas dapat membantu pemaju dengan betul melaksanakan komponen kotak semak yang mempunyai fungsi dan estetika.
