아래로 당겨서 새로고침

오프라인(내부망) 환경에 dart-sass 설치

date
Apr 18, 2023
thumbnail
tmb_sass_tutorial.png
gsc
Done
public
public
slug
sass-offline
author
tags
Frontend
Javascript
summary
sass/scss 컴파일러 dart-sass를 사용해보자
type
Post
updatedAt
Oct 20, 2023 01:42 AM

Introdution

설치 방법에 대한 질문을 받고 방법을 모색하면서, 가장 간단하게 적용했던 내용을 정리하고자 한다. 다양한 방법이 있었지만, dart-sass에서 안내하는 방법으로 적용해보았다.
설치 환경은 Windows 10 으로, Linux와 같은 다른 환경인 경우 아쉽지만 다른 글을 참고하길..
 

SCSS/SASS 란?

notion image
SCSS와 SASS는 CSS를 더 편리하게 작성할 수 있게 해주는 CSS 전처리기(preprocessor)이다. CSS보다 가독성이 높고 유지보수에 용이하며, 변수, 함수, 중첩 규칙 등을 제공한다. SCSS는 CSS와 거의 동일한 문법을 가지고 있고, SASS는 문법이 약간 다르다.
 

차이점

SASS 문법 예시

$primary-color: #007bff .container padding: 1rem .card background-color: white border-radius: 0.25rem box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) .card-header background-color: $primary-color color: white font-size: 1.25rem font-weight: bold .card-body padding: 1rem
 

SCSS 문법 예시

$primary-color: #007bff; //변수 선언 .container { padding: 1rem; .card { // 중첩문 css에서는 [ .container .card ] 와 같다. background-color: white; border-radius: 0.25rem; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); .card-header { background-color: $primary-color; //변수의 사용 color: white; font-size: 1.25rem; font-weight: bold; } .card-body { padding: 1rem; } } }

CSS 문법 예시

.container { padding: 1rem; } .container .card { background-color: white; border-radius: 0.25rem; box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); } .container .card .card-header { background-color: #007bff; color: white; font-size: 1.25rem; font-weight: bold; } .container .card .card-body { padding: 1rem; }

SCSS와 CSS 문법 설명

SCSS에서는 중첩 규칙을 사용하여 코드의 가독성을 높일 수 있다. 또한, 변수, 함수, mixin 등을 제공하여 코드를 더욱 간결하고 유지보수하기 쉽게 작성할 수 있다.
예를 들어, .card-header.card-body 클래스는 .card 클래스 안에 있으며, .container 클래스 안에 있는 .card 클래스와 .card-header 클래스는 .container 클래스의 자식 요소로 정의된다. 반면 CSS 문법에서는 이러한 중첩 규칙을 사용할 수 없으므로, 클래스 이름을 반복해서 기술해야 한다.
또한, SCSS에서는 변수를 사용하여 색상, 글꼴 크기 등을 관리할 수 있다. 이를 통해 코드를 더욱 간결하고 유지보수하기 쉽게 작성할 수 있다.
 

dart-sass 설치

브라우저는 sass의 문법을 알지 못하기 때문에 css파일로 컴파일할 수 있도록 sass환경을 오프라인에 설치해보자.
 

1. 파일 다운로드

아래 링크로 이동하고 Windows 환경의 파일을 다운로드 받는다. 링크: Release Dart Sass 1.62.0 (작성 시점 최신 버전)
notion image
해당 git repository의 tags에 버전 관리가 잘되어있다. 다른 버전을 받고자 하는 경우 tags 목록에서 선택하여 적용하자.
 

2. 압축 해제 및 경로

경로의 경우 본인이 관리하기 편한 위치에 두도록 한다. 이 글 설명을 위한 목적으로 C:\Temp 경로에 dart-sass 폴더로 압축을 풀었고, 아래와 같은 tree 구성을 가진다.
C:\Temp\dart-sass │ sass.bat │ └─ src dart.exe LICENSE sass.snapshot
dart-sass의 디렉토리 구조
 

3. 환경 변수 설정

설치 이후 sass 실행을 위한 PATH 변수를 추가한다.
  • 윈도우키 혹은 시작 메뉴에서 ‘시스템 환경 변수 편집’ 을 검색하고, 이동한다.
notion image
 
  • 환경 변수’ 클릭
notion image
 
  • 시스템 변수 리스트에서 ‘Path’를 선택하고 편집한다.
notion image
 
  • ‘새로 만들기’ 를 선택하고, 본인이 준비한 경로를 입력한다.
notion image
 
  • 이후 실행하던 터미널이 있다면 종료 후 sass --help 명령어를 입력하여 설치 여부를 확인한다.
아래 명령어에 대한 설명은 스크린샷에서 제외했다.
아래 명령어에 대한 설명은 스크린샷에서 제외했다.

.scss의 파일을 .css로 변환

설치한 dart-sass를 이용하여 파일을 변환해보자. 아래 명령어를 실행 시 sample.scss의 파일을 변환하고, sample.css 파일을 생성하게 된다.
# 변환하려는 파일 경로로 이동하여, 명령어를 실행한다. # 명령어 실행 sass sample.scss sample.css
동작 Tip. path에 설정한 sass 명령어 뒤에 실행한 파일명들은 sass.bat으로 arguments 값에 담겨 exe를 실행하게 된다.
 
  • sample.scss ( 원본 scss 파일 )
// sample.scss .list { width: 100px; float: left; li { color: red; background: url("./image.jpg"); &:last-child { margin-right: -10px; } } }
 
  • sample.css ( 생성된 css 파일 )
.list { width: 100px; float: left; } .list li { color: red; background: url("./image.jpg"); } .list li:last-child { margin-right: -10px; }

마무리

내부망 환경에서 sass를 설치하고, 사용하는 방법을 간단하게 살펴보았다. 동일하게 오프라인(내부망)에서 적용한다면 zip 파일만 내부로 가져오면 된다. 자세한 내용은 dart-sass의 공식 문서에서 확인 가능하다. yarn, npmbox 등 다양한 방법도 있지만, 가장 쉽다고 생각한 방법으로 정리해보았다.

참고

긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 언제나 환영합니다.

#Frontend#Javascript