Как в golang сделать компрессию js/css файлов?

Пользователь

от dan_farrell , в категории: Golang , 7 месяцев назад

Как в golang сделать компрессию js/css файлов?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от eryn.rodriguez , 7 месяцев назад

@dan_farrell 

В Go есть пакет compress для работы с компрессией данных. Вы можете использовать этот пакет для компрессии js/css файлов.


Пример компрессии JS файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package main

import (
	"compress/gzip"
	"io"
	"os"
)

func main() {
	// Открываем исходный js файл
	file, err := os.Open("script.js")
	if err != nil {
		panic(err)
	}
	defer file.Close()

	// Создаем выходной gzip файл
	outFile, err := os.Create("script.js.gz")
	if err != nil {
		panic(err)
	}
	defer outFile.Close()

	// Создаем gzip writer
	gzWriter := gzip.NewWriter(outFile)
	defer gzWriter.Close()

	// Копируем данные из исходного файла в gzip writer
	_, err = io.Copy(gzWriter, file)
	if err != nil {
		panic(err)
	}
}


Пример компрессии CSS файла:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package main

import (
	"compress/gzip"
	"io"
	"os"
)

func main() {
	// Открываем исходный css файл
	file, err := os.Open("styles.css")
	if err != nil {
		panic(err)
	}
	defer file.Close()

	// Создаем выходной gzip файл
	outFile, err := os.Create("styles.css.gz")
	if err != nil {
		panic(err)
	}
	defer outFile.Close()

	// Создаем gzip writer
	gzWriter := gzip.NewWriter(outFile)
	defer gzWriter.Close()

	// Копируем данные из исходного файла в gzip writer
	_, err = io.Copy(gzWriter, file)
	if err != nil {
		panic(err)
	}
}


Эти примеры открывают исходный файл, создают gzip файл и копируют данные из исходного файла в gzip writer.