반응형
[Django] npm으로 설치한 패키지 사용하는 방법(node_modules)
npm으로 패키지를 설치하는 경우 node_modules폴더와 package.json 파일이 생성된다.
1. STATIC_URL 경로 안에 node_modules 폴더가 존재하는 경우
[구조]
- 프로젝트
- 프로젝트 폴더
- settings.py
- ...
- static
- node_modules
- package.json
- ...
- manage.py
- ...
django templates에서 node_modules에 저장된 javascript/css 파일을 사용하기 위해서는
settings.py에 선언된 STATIC_URL 경로에 node_modules가 포함되어 있어야 한다.
즉, STATIC_URL = '/static/'인 경우 static 폴더 안에 node_modules 폴더가 존재해야 한다는 것이다.
그러면, django templates에서 {% static 'node_modules/package/dist/my.min.js' %}
라는 형식으로 사용할 수 있다.
2. 프로젝트 폴더에 node_modules 폴더가 존재하는 경우
[구조]
- 프로젝트
- 프로젝트 폴더
- settings.py
- ...
- node_modules
- package.json
- manage.py
- ...
매번 npm으로 설치 할때 static_url안에서 설치하기에는 불편함이 없지 않다.
프로젝트 폴더 위치에서 npm으로 패키지를 설치할 경우 node_modules폴더와 package.json파일이 생성되며 node_modules 폴더 하위에 패키지들이 설치된다.
이 경우, "collectstatic"를 이용해서 static 파일을 한곳에 모을 수 있다.
- settings.py 파일 수정
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATICFILES_DIRS = ( # ... os.path.join(BASE_DIR, 'node_modules'), )
- STATICTILES_DIRS에 node_modules 경로를 추가(없는 경우 생성)해 준다.
- collectstatic으로 한 곳에 모을 static 폴더들이다.
- STATIC_ROOT를 설정해 준다.
- static 파일을 모을 장소.
- django 실행 시 해당 위치에 있는 파일이 실행된다.
- collectstatic명령어 실행
$ python manage.py collectstatic
- 만약, 특정 폴더를 제외하고 싶은 경우 -i 옵션을 이용해서 제외 할 수 있다.
# 예) icons와 temp폴더 제외 $ python manage.py collectstatic -i icons -i temp
반응형
'Python > Django' 카테고리의 다른 글
[Django] django_mysql Warnings 해결 방법 (0) | 2019.08.16 |
---|---|
[Django] Ajax로 다차원 배열, Json안에 Json 등 중첩된 구조의 데이터 전송하는 방법 (0) | 2019.08.15 |
[Django] SCSS/SASS 사용하는 방법 (0) | 2019.08.14 |
[Django][fancytree] ajax로 서버에서 데이터 불러오기 (0) | 2019.08.06 |
[Django][React] Django와 React 설정하기 (0) | 2019.08.01 |