|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "VSCODE Sass, Vue, Vue Snippet 세팅하기" |
| 4 | +date: 2017-02-21 22:17:00 +0900 |
| 5 | +categories: jekyll update |
| 6 | +author: "jinhan" |
| 7 | +excerpt: "VSCODE에서 Vue개발환경 세팅을 해봅시다." |
| 8 | +--- |
| 9 | + |
| 10 | +[원본 글](http://hjh5488.tistory.com/39) |
| 11 | + |
| 12 | +# VSCode Sass, Vue 세팅하기 |
| 13 | + |
| 14 | +항상 `Vue.js korea`에서 많은 분들의 도움을 받고 있습니다. 감사합니다~ |
| 15 | + |
| 16 | +어제 `vscode`를 처음 써보면서 세팅하면서 겪었던 시행착오들을 한번 정리해봤습니다. |
| 17 | + |
| 18 | +`vscode`를 처음 쓰시고자 하는분들한테 도움이 되길 바랍니다. |
| 19 | + |
| 20 | +## Sass |
| 21 | +vscode를 맨 처음 설치하고 단일 파일 `*.vue`로 된 파일을 열었을때 `scss`가 있으면 아래와 같이 에러가 발생합니다. |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +이 에러가 발생하는 이유는 기본적으로 vscode가 `sass`를 지원하지 않기 때문입니다. |
| 26 | + |
| 27 | +그래서 `sass를 사용하기 위해서는 extension설치와 설정을 해주어야 합니다.` |
| 28 | + |
| 29 | +`설치 후 설정 중요!!` |
| 30 | + |
| 31 | +먼저 vscode에서 `vue`파일을 사용하기 위해서 제가 사용한 extension은 [Vue Components](https://marketplace.visualstudio.com/items?itemName=seanwash.vue) 입니다. |
| 32 | + |
| 33 | +vscode에서 extension를 쉽게 설치하기 위해서 제공되는 편의 기능 중에 `F1`를 누르고 나오는 입력창에서 아래와 같이 입력하면 됩니다. |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +그러고 나서 `Vue Components`를 설치해줍니다. |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +여기까지 설치가 다 되어서 다시 파일을 가보면 vscode는 여전히 에러를 뱉어내고 있습니다. |
| 42 | + |
| 43 | +여기서 아까 말한 `설정`이 필요합니다. |
| 44 | + |
| 45 | +`README`를 보면 아래와 같이 설정하라고 나옵니다. |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +> 그러면 이 설정을 어떻게 하느냐?!에서 많은 분들이 궁금증을 가지실수 있습니다. |
| 50 | +
|
| 51 | +그래서 vscode는 이러한 세팅을 `settings.json`라는 파일로 세팅을 관리합니다. |
| 52 | + |
| 53 | +프로젝트의 root에 `.vscode`라는 디렉토리를 찾으실 수 있을겁니다. |
| 54 | + |
| 55 | + |
| 56 | + |
| 57 | +그래서 `settings.json`파일을 열고 아까 본 설정을 적어줍니다. |
| 58 | + |
| 59 | +```json |
| 60 | +"files.associations": { |
| 61 | + "*.vue": "vue" |
| 62 | +} |
| 63 | +``` |
| 64 | + |
| 65 | +이렇게 적용을 하면 인제부터 `.vue`파일에서 `scss`를 사용할 수 있습니다. |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | +## Vue |
| 70 | +vscode에서 `eslint`를 적용하기 위해서 저는 `vscode-eslint`를 설치하였습니다. |
| 71 | + |
| 72 | +이 가이드는 javasript lint중에 `standard`를 기준으로 설명하겠습니다. |
| 73 | + |
| 74 | +[vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)를 설치 하고 아무런 세팅을 안해주면 |
| 75 | + |
| 76 | +`js에서는 잘 되는데 vue파일에서는 linting이 작동하지 않았습니다.` |
| 77 | + |
| 78 | +그래서 `vscode-eslint` 이슈를 살펴보던 중에 해결방법을 찾았습니다. |
| 79 | + |
| 80 | +`vscode-eslint`를 설치하고 나면 기본적인 세팅은 2가지만 되어있습니다. |
| 81 | + |
| 82 | +```json |
| 83 | +// An array of language ids which should be validated by ESLint |
| 84 | +"eslint.validate": [ |
| 85 | + "javascript", |
| 86 | + "javascriptreact" |
| 87 | +], |
| 88 | +``` |
| 89 | + |
| 90 | +그래서 작업하시는 프로젝트의 `settings.json`에 아래와 같이 적용해줍니다. |
| 91 | + |
| 92 | +```json |
| 93 | + "eslint.validate": [ |
| 94 | + "javascript", |
| 95 | + "javascriptreact", |
| 96 | + "html", |
| 97 | + "vue" |
| 98 | + ] |
| 99 | +``` |
| 100 | + |
| 101 | +이 방법은 [vscode-eslint의 ISSUE #42](https://github.com/Microsoft/vscode-eslint/issues/42#issuecomment-264836417)를 참고하였습니다. |
| 102 | + |
| 103 | +이렇게 세팅을 하고 나면 인제 `.vue`파일에서도 linting이 되는걸 확인하실 수 있습니다. |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | +지금까지 vscode에서 `sass, vue세팅하기`에 대해서 알아봤습니다. |
| 108 | + |
| 109 | +## 부록 |
| 110 | +저처럼 `귀차니즘이 심한 개발자`라서 어떻게 하면 좀 더 자동화를 해볼까? 라고 생각하시는 분이 있다면 `vue snippet`를 등록해보세요. |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | +위와같은 절차로 들어가게 되면 `vue.json`파일이 나옵니다. 거기에 아래 `snippet`를 추가해주세요. |
| 117 | + |
| 118 | +```json |
| 119 | +"init template": { |
| 120 | + "prefix": "tpl", |
| 121 | + "body": [ |
| 122 | + "<template lang='$1'>", |
| 123 | + "", |
| 124 | + "</template>", |
| 125 | + "<script>", |
| 126 | + "export default {", |
| 127 | + "", |
| 128 | + "}", |
| 129 | + "</script>", |
| 130 | + "<style lang='$2'>", |
| 131 | + "", |
| 132 | + "</style>", |
| 133 | + "" |
| 134 | + ], |
| 135 | + "description": "single vue file initial template" |
| 136 | +} |
| 137 | +``` |
| 138 | + |
| 139 | +그러면 아래와 같이 사용할 수 있습니다. |
| 140 | + |
| 141 | +.gif) |
| 142 | + |
| 143 | +마지막으로 틀린 점이나 조금 더 나은 방법이 있으신 분은 언제나 지적해주시면 감사하겠습니다 ^^ |
0 commit comments