Setelah semua siap, yang anda perlukan adalah membuat file config.js pada template atau module buatan anda untuk meng-index kan file2 apa saja yang akan anda compress serta menentukan dimana hasil compress tersebut akan tersimpan, Anda juga bisa melihat contoh file config.js di sini atau pada file readme.md di compressor ini
Jika file config anda sudah siap, sesuai yang telah di contohkan, saatnya anda masuk ke folder tersebut menggunakan terminal command lalu memasukkan perintah
pack
atau anda bisa menambahkan option "-c" contoh: pack -c
Dengan begitu ketika file config.js tersebut tersimpan diproject dalam repository, anda tetap bisa meneruskan pengembangan di lain hari dengan script asli anda, serta tidak kehilangan index file2 yang perlu di kompress (config.js)
Cara menggunakan perintah pack
- Anda harus menggunakan terminal command seperti dibawah:
pack [option] [source] [destination]
- meng-kompress banyak file menggunakan file config.js
pack [option] directory/where/tosave/config.js
- meng-kompress file dengan menampilkan secara langsung hasilnya pada terminal anda
pack [option] path/to/file/javascript.js
pack [option] path/to/file/style.css
- meng-kompres file kemudian menyimpan hasil kompresan pada file lain
pack [option] path/to/file/javascript.js path/destination/output.min.js
pack [option] path/to/file/style.css path/destination/output.min.css
- meng-kompres file kemudian menyimpan hasilnya pada directory yang sama
- ini akan menghasilkan jsfilename.min.js :
pack [option] path/to/file/jsfilename.js ./
- ini akan menghasilkan cssfilename.min.css :
pack [option] path/to/file/cssfilename.css ./
- ini akan menghasilkan jsfilename.min.js :
Option-option yang tersedia
- -c --compress = maximalkan hasil kompres, pastikan file yang anda kompres tidak ada kesalahan dalam code nya
- -u --unpack = Merapikan kembali code pada file yang telah terkompres. Hanya bisa untuk 1 file tiap perintah
- -V --version = Menampilkan versi esoftplay-packer yang telah terinstall, jangan lupa untuk mengupdate
- -w --watch = Awasi jika file yang anda kompres/rapikan berubah, script akan meng-eksekusi kembali jika file terjadi perubahan
- -h --help = Menampilkan halaman bantuan penggunaan dari perintah
pack
Mengenal file config.js
file config.js harus bernama "config.js" dan tidak boleh menggunakan nama lain agar tidak rancu kedepannya. File ini adalah file untuk menentukan pemetaan file-file mana saja yang akan dikompres sehingga anda bisa mengeksekusi dengan sekali perintah, contoh:pack /var/www/html/master/templates/admin/bootstrap/config/v3/config.jsadapun contoh isi dari file config.js ini adalah sebagai berikut
module.exports = { source: "/absolute/path/source/", // determine source path, without this key system will consider in the same directory where this file is placed dest: { path: __dirname + "/destination/", // determine the destination path if it's the same as the source then empty it or don't use this key css: "style.min.css", // specify the compressed filename of all css and scss then save the file in dest.path + "css/", default value is 'style.css' js: "script.min.js" // specify the compressed filename of js files then save the file in dest.path + "jss/", default value is 'script.js' }, jscompress : 2, // 1=uglify, 2=packer (compression method) jsnocheck : 0, // 1=direct compress, 0=check before compress watch : 0, // 1=Watch for changes, 0=Exit after compress script: { // additional code to execute before or after execution [see below content for more information] code: "", // what script to execute file: "" // filename to execute } css: [ // retrieve all css along with scss files to compress into one single file as name which is determine in dest.path+"css/"+dest.css "relatif/path/to/style1.css", "./relatif/path/to/style2.css", // you can also use ../../ to point which file you want to process "/absolute/path/to/style3.css" ], scss: [ // retrieve all scss along with css files to compress into one single file as name which is determine in dest.path+"css/"+dest.css "relatif/path/to/style1.scss", "./relatif/path/to/style2.scss", "/absolute/path/to/style3.scss" ], font: [ // retrieve all files to copy into dest.path+"fonts/" "relatif/path/to/fonts/*", // use single star like * to process file only "/absolute/path/to/fonts/**" // use double star like ** to process recursively ], js: [ // retrieve all javascript files to compress into one single file as name which is determine in dest.path+"js/"+dest.js "relatif/path/to/script1.js", "./relatif/path/to/script2.js", "/absolute/path/to/script3.js" ], copy: { // collect all files to copy or compress "css": [ // these files will be placed in dest.path+"css/" "relatifORabsolute/path/to/style.css", // copy as the same name { // example how to copy and compress the file as different filename $destination_file : $source_file "style.min.css": "relatifORabsolute/path/to/style.css", } ], "js": [ // these files will be placed in dest.path+"js/" "relatifORabsolute/path/to/script.js", // copy as the same name { // example how to copy and compress the file as different filename $destination_file : $source_file "script.min.js": "relatifORabsolute/path/to/script.js" } ], "img": [ // copy these files without any compression method and place them in dest.path+"img/" "relatif/path/to/img.jpg",// copy a single file "./relatif/path/to/*", // use single star like * to process file only "/absolute/path/to/**", // use double star like ** to process recursively { // example how to copy file as different filename $destination_file : $source_file "othername.jpg": "relatifORabsolute/path/to/anyname.jpg" } ] // , "anyfoldername":[... same as above ...] } }
Script tambahan yang bisa dieksekusi
Anda bisa menambahkan script tambahan yang akan dieksekusi setelah proses packing selesai dengan cara manmbahkan satu lagi keyscript
pada config.js
lihat contoh di bawah
module.exports = { script: { code: "ls -al", file: "../testscript.js" }, // source: "/absolute/path/source/", // dest: { // path: "/absolute/path/destination/", // css: "style.min.css", // js: "script.min.js" // }, // jscompress: 2, // watch: 0, // css: [], // scss: [], // font: [], // js: [], // copy: {} }
Untuk menentukan apakah script itu dieksekusi sebelum compiler dijalankan maka
script: { "before": { "code": "ls -al", "file": "testscript.sh" } }
Dan jika anda ingin menentukan script yang ingin dieksekusi baik sebelum compiler dijalankan dan sesudah compiler selesai, anda bias memasukkan key sebagai berikut
script: { "before": { "code": "ls -al", "file": "testscript.php" }, "after": { "code": "ls -al", "file": "testscript.js" }, }Jika anda perhatikan penggunaan key
file
ada contoh menggunakan .js, .php ataupun .sh hal ini dikarenakan eksekusi file tersebut mengikuti format dari file yang dieksekusi. Jadi semisal anda memasukkan file .php maka pada prakteknya dalam bash akan dieksekusi php `config.script.file`
begitu juga jika file .js akan menjadi node `config.script.file`
atau file .sh akan menjadi sh `config.script.file`
. Dan apabila file yang dieksekusi tidak memiliki format ekstensi maka file tersebut akan dieksekusi secara langsung, sehingga harus anda pastikan permission dari file tersebut executable.Sayangnya fitur ini hanya berlaku untuk system *nix seperti linux, MacOS, BSD dll. untuk windows belum kami test
0 Komentar
Berikan komentar anda