๋ฒ๊ทธ ์ค๋ช
๊ตฌ์ฑ ์์์ <style>
ํ๊ทธ์ lang
์์ฑ์ ์ง์ ํ ๋ VS Code ์ฉ Svelte ๋ฒ ํ๋ ๋ค์ ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
The file cannot be parsed because script or style require a preprocessor that doesn't seem to be setup. Did you setup a `svelte.config.js`? See https://github.com/sveltejs/language-tools/tree/master/packages/svelte-vscode#using-with-preprocessors for more info.
์ด๋ <style>
๊ตฌ์ฑ ์์์ lang
์์ฑ์ ์ง์ ํ ๋๋ง ๋ฐ์ํฉ๋๋ค. ๊ฒฝ์ฐ LANG ์์ฑ์ด ์ ๊ฑฐ๋๋ฉด <style>
ํ๊ทธ ๊ฒฝ๊ณ ๋ ๊ด๊ณ์์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ์, ์ฌ๋ผ์ง lang
์์์ ์์ฑ <script>
ํ๊ทธ.
์ฌํํ๋ ค๋ฉด
๋์์ ์ฌํํ๋ ๋จ๊ณ :
degit svelte/template-webpack
๋ฅผ ์ฌ์ฉํ์ฌ ์ Svelte + Webpack ํ๋ก์ ํธ๋ฅผ ๋ง๋ญ๋๋ค.npm i -D typescript node-sass svelte-preprocess
const sveltePreprocess = require('svelte-preprocess')
module.exports = {
preprocess: sveltePreprocess()
}
lang="scss"
<style>
ํ๊ทธ์ src/App.svelte
<script>
ํ๊ทธ์ ํ์๋์ด์ผํฉ๋๋ค.์์๋๋ ํ๋
Svelte ๋ฒ ํ๊ฐ ๊ฒฝ๊ณ ๋ ์ค๋ฅ๋ฅผ ๋ฐํํ์ง ์์ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค.
์คํฌ๋ฆฐ ์ท
์ฒด๊ณ:
์ถ๊ฐ ์ปจํ
์คํธ
์๋ํ์ง ์๋ ์์ฃผ ๊ถ์ฅ / ๋ช
๋ฐฑํ ์์ :
svelte.config.js
ํ์ผ์ด ์๋์ง ํ์ธํ์ต๋๋ค ._C:\Program Files\nodejs\node.exe
const sveltePreprocess = require('svelte-preprocess')
module.exports = {
preprocess: [sveltePreprocess()]
}
```js
const sveltePreprocess = require ( 'svelte-preprocess')
module.exports = {
์ ์ฒ๋ฆฌ : sveltePreprocess ({
sass : ์ฐธ
})
}
```js
const sveltePreprocess = require('svelte-preprocess')
module.exports = {
preprocess: sveltePreprocess({
sass: true,
typescript: true
})
}
svelte.config.js
๋ด ๋ณด๋ธ ์ ์ฒ๋ฆฌ ์ต์
์ ์ฌ์ฉํ๊ณ ์ค๋ฅ๋ ๊ฒฝ๊ณ ์์ด Svelte ์ฝ๋๋ฅผ ์ปดํ์ผํฉ๋๋ค.์ด๊ฒ์ ๋ํ ๋์๊ฒ๋ ๋ฐ์ํฉ๋๋ค. src="./xxx.scss"
๋ฅผ ํตํด ๊ฐ์ ธ์จ ์คํ์ผ์ ์ธ์ด๋ฅผ ๊ฐ๋ฆฌํค๋ ์ธ์ด ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋นํ์ฑํํ์๋ง์ ์์คํ
์ด ํ์ด์ง ์์ ๋ถ๋ถ์์ ๋ถํ์ ์ค์งํฉ๋๋ค.
์ด SCS๋ค์ ๋ํ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, ๋๋ ๊ทธ๊ฒ์ด ๊ฐ์ ๋ ธ๋ ๋ง๋๊พธ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์์ฃผ ํ์ ์ด ํ๋ .
์ถ๋ ฅ-> Svelte in VSCode (ํ๋จ์๋ณด๊ธฐ, ํฐ๋ฏธ๋ ์์น)๋ฅผ ์ด๊ณ ์ค๋ฅ๋ฅผ ์ฌํํ๊ณ ์ฌ๊ธฐ์ ์ถ๋ ฅ ๋ด์ฉ์ ๋ถ์ฌ ๋ฃ์ ์ ์์ต๋๊น?
๊ด๋ จ ๊ฐ๋ฅ์ฑ ์์ : # 32
Node-sass๋ก ๋ก์ปฌ ๋ฐ ์ ์ญ ์ ์ผ๋ก ์ํ ํ ์์ ์ ์ฌ๋ฌ ๋ฒ ๋ค์๋ก๋ ํ ํ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒฝํ์ง ์์์ต๋๋ค.
์ด๊ฒ์ Svelte์ ์ถ๋ ฅ์ ๋๋ค.
loading config for /PATH/TO/PROJECT/src/Button.svelte
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
loading config for /PATH/TO/PROJECT/node_modules/@smui/common/H6.svelte
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
loading config for /PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
loading config for /PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
loading config for /PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
Using Svelte v3.20.1 from /PATH/TO/PROJECT/node_modules/svelte/compiler
Linting SCSS๋ ๊ด๋ จ์ด์์ ์ ์์ผ๋ฉฐ ์ธ๋ผ์ธ SCSS๊ฐ์์ ๋๋ ์ฌ์ฉํ์ง๋ง ๋ถ์์ ์ผ๋ก ์ด๊ฒ์ ์ค๋ฅ๊ฐ ์๋๋ผ ํ์ผ ์๋จ์ ๊ฒฝ๊ณ ์ ๋๋ค. ๊ตฌ๋ฌธ ๋ถ์์ SCSS๊ฐ ํ์ํ์ง ์์ต๋๋ค.
๋๋์ด htmlxparser.ts ์ ๊ด๋ จ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@dummdidumm ์ด ๋ฒ๊ทธ๋ฅผ ๊ฒ์ํ๊ธฐ ์ ์ ์ค์ ๋ก ์ถ๋ ฅ์ ํ์ธ
๊ทธ๊ฒ์ scss์์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ด์ ๊ฐ์ node-sass ๋ฌธ์ ๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ฌ์ค ์ผ ๊ฒ์ด๋ผ๊ณ ํ์์ ์ด์ง๋ง ๋ด๊ฐ ์ฐพ์ ๊ฒ์ ์กฐ์ฌํ๊ณ ๋ณผ ๊ฒ์ ๋๋ค.
@Egnus ์ถ๋ ฅ์์ svelte.config.js
๊ฐ ๋ฐ๊ฒฌ๋์์์ ์ถ๋ก ํ ์ ์์ต๋๋ค. ๊ตฌ์ฑ์ ์ฐพ์ ์ ์์ง๋ง ํ์ํ ๊ฒฝ์ฐ ( lang
/ type
์ด (๊ฐ) script
/ style
), No svelte.config.js found but one is needed
๋ฉ์์ง ๋ก๊ทธ์ ํ์๋ฉ๋๋ค.
๋ํ svelte2tsx
์ htmlxparser์๋ ์๋ฌด๋ฐ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ํ๋ฉด ๊ฑฐ๊ธฐ์์ ์ํ๋๋ ์ ์ฒ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋๋ค. svelte ์ปดํ์ผ๋ฌ์์ ์ง๋จ์ ๊ฐ์ ธ ์ค๋ ๋์ ์ฌ๊ธฐ์์ ์คํจํฉ๋๋ค.
๋ค์์ Svelte ์ถ๋ ฅ์ ํ์ธํ ๋ ์ป์ ๋ก๊ทธ์ ๋๋ค (์ต๋ช ํ ๋ ๊ฒฝ๋ก, VS ์ฝ๋์ ํ์ ๋ ๋์ ๊ฐ์ ์ฌ๋์).
Initialize language server at c:/PATH/TO/PROJECT/
Initialize new ts service at
loading config for c:/PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
loading config for c:/PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
loading config for c:/PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
loading config for c:/PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
loading config for c:/PATH/TO/PROJECT/src/App.svelte
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
@Egnus ์ VS Code ์ถ๋ ฅ๊ณผ ๊ฑฐ์ ๋์ผํ๋ฉฐ Initializing new ts service at
ํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ค์ํ ๊ฒ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ฉ์์ง ์ฌ์ด์ ์ฌ๋์๊ฐ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ๋์ ๋๋ค.
๋ํ node-sass๊ฐ ๋ด Windows ๋ฐ Node.js ๋ฒ์ ๊ณผ ํธํ๋๋์ง ๋ค์ ํ์ธํ์ต๋๋ค. node-sass v4.14.1 (ํ์ฌ ์ต์ ๋ฆด๋ฆฌ์ค)์ ๋ด ๋ฒ์ ์ ๋ ธ๋ v13.7๊ณผ ํธํ๋ฉ๋๋ค.
ํ ๋ฒ ๋ ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น? ํด๋น ์์ญ์ ๋ ๋ง์ ๋ก๊ทธ์ธ์ ์ถ๊ฐํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ํธ์ํ๊ณ ์ฌ์ฉ์์๊ฒ ํ์๋๋ ์ค๋ฅ ๋ฉ์์ง๋ ์ฝ๊ฐ ์ ๋ฐ์ดํธํ์ต๋๋ค.
์์ ์ปค๋ฐ์ ์ธ๊ธํ๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ปค๋ฐ์ด ๋ณํฉ ๋ ํ ํ์ธํ๊ณ ํ์ธํ๊ธฐ ์ ์ ์ ์ ๋ฐ์ดํธ๋ฅผ ์ค์นํ์ต๋๋ค.
ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ฝ 8 ์๊ฐ ์ ์ ๋ง์ง๋ง์ผ๋ก ์ผ๊ฐ์ ๊ฒ์๋๋ฏ๋ก 14 ์๊ฐ ์ ๋ก๊ทธ๋ "์ด์ "๋ฒ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์, ์๊ฒ ์ต๋๋ค. ๋ค์์ ๊ฐ๋ฅํ ๋ ์ ๋ก๊ทธ๋ฅผ ๋ฐ๊ฒ๋ฉ๋๋ค.
๋ช ์๊ฐ ์ ์ ํ์ธํ๊ฒ ์ต๋๋ค.
ํฅ๋ฏธ ๋กญ๊ตฐ์, ๋น์ ๋ง์ด ๋ง์์ด์ :
Preprocessing failed
Error: Cannot find any of modules: node-sass,sass
at Object.exports.importAny (/PATH/TO/PROJECT/node_modules/svelte-preprocess/dist/utils.js:1:2844)
svelte.config.js
์ฌ์ฉํ์ง ์๋ ์ด์ ๋ฅผ ํ์ธํ๊ณ ๋์์ฌ ๊ฒ์
๋๋ค.
์ข์, svelte-preprocess
๋ VSCode์ ์ํด ์ ์ญ ๋๋ ๋ก์ปฌ ๋ชจ๋ node-sass
๋ฅผ ์ฐพ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋์ผํ ๋กค์
๊ตฌ์ฑ์ด ๋ค์ svelte.config.js
๊ฐ์ ธ ์ค๋ ๋์ ์ํ๋ฉ๋๋ค.
// svelte.config.js
const sveltePreprocess = require('svelte-preprocess');
module.exports = {
preprocess: sveltePreprocess({
scss: {
includePaths: ['x', 'y', 'z'],
},
typescript: {
extensions: ['x', 'y', 'z'],
includePaths: ['x', 'y', 'z'],
},
}),
// ...other svelte options
};
// The following alternative should make SCSS to work but nothing else will. Why the auto preprocess does not work here?
// import sass from 'node-sass';
// module.exports = {
// preprocess: {
// style: async ({ content, attributes }) => {
// if (attributes.type !== 'text/scss') {
// return;
// }
// const result = await sass.renderSync({
// data: content,
// sourceMap: 'style.css.map',
// omitSourceMapUrl: true,
// });
// return {
// code: result.css.toString('utf8'),
// map: result.map.toString('utf8'),
// };
// },
// },
// };
Svelte Beta์ ๋ฌธ์ ์ผ๊น์? ์ ์ฒ๋ฆฌ๋ฅผ ์ง์ ์์ฑํ๋ ๊ฒ ์ธ์๋์ด ์์ ์์ VSCode์ ๋ํ node-sass์ ๊ฒฝ๋ก๋ฅผ ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฆ ๋๋ค.
๋๋ ์ด๊ฒ์ master์์ ์ป๊ณ ์๊ณ ๋ด ์ปดํจํฐ์ node-sass๊ฐ ์ค์น๋์ด ์์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. Typescript๊ฐ ์๋ ์ค์ ๋๋ค (!!!) ๋ค์ ์ฑ๊ฐ์ ๋ฆฐํธ ๊ฒฝ๊ณ ๊ฐ ์์ต๋๋ค.
.
โโโ home.svelte
โโโ node_modules
โย ย โโโ <strong i="6">@types</strong>
โย ย โโโ detect-indent
โย ย โโโ min-indent
โย ย โโโ strip-indent
โย ย โโโ svelte-preprocess
โโโ package-lock.json
โโโ package.json
โโโ svelte.config.js
home.svelte
<script lang="typescript">
export let title: string = "10";
</script>
<style>
h2 {
background: blue;
}
</style>
<html lang="en">
<h2>{parseInt(title, 10)}</h2>
</html>
svelte.config.js
const sveltePreprocess = require('svelte-preprocess')
module.exports = {
preprocess: sveltePreprocess(),
}
์ด ๋ฒ์๋ฅผ ์ขํ๊ธฐ ์ํด ๋ ๋ง์ ๊ฒ์ ํ ์คํธํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
๋๋ ๋ํ โค๏ธ svelte.config.js
๋ฅผ ์ ๊ฑฐํ๊ณ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ์ ๊ตฌ์ ๋์์ต๋๋ค. PR์ ์ด์ด์ ๊ธฐ์ฉ๋๋ค. ํธ์ง , ๋๋ _think_ https://github.com/sveltejs/language-tools/pull/87 ์ด ์ผ์ ๋ง๋ค์์ต๋๋ค ๐
mm Im ํธ๊ธฐ์ฌ์ด @matthewmueller , ํ์ฅ ๊ธฐ๋ฅ์์
์ํ! ํฌ์ธํฐ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ข์, ๊ทธ๋์ ์ด๊ฒ์ ๋ด๊ฐ ๋์๊ณ ์ค์ ์ฑ์์ ์์ง ํ ์คํธํ์ง ์์๋ค๋ ๊ฒ์ ๋๋ฌ๋ธ๋ค ๐
๋์ด์ผ ๋ณด๋ฉด ๋ช ๋ฐฑํ ๋ ๊ฐ์ง ์์ ์ ์ข ์์ฑ์ด ์์ง๋ง ๊ฒฝ๊ณ ๋ ๋น์ ์ ํ๋ฝํ๊ฒ ๋ง๋ญ๋๋ค.
VSCode๊ฐ Typescript์์ ์๋ํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ์ฌ๋๋ค์ด ๋น ๋ฅด๊ฒ ๋ ์ ์๋๋ก ๋์ฒด Typescript ๋ฐ Svelte๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ๋ฉ์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ๊ตฝ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ : ๋๋ ์ด๊ฒ์ ๋ํด ์๊ฐํ์ง๋ง, ๋ ์ฌํ ์ปค๋ฎค๋ํฐ๊ฐ ์ด๋ฏธ ์ฌ์ฉ์ ์ง์ ์ ์ฒ๋ฆฌ๊ธฐ์ ๋๋ฌด ์ต์ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ํ๋ฌ๊ทธ์ธ ์์ ์๋ค๋ฉด, ์ด๊ฒ์ node-sass, less, babel, ..๊ณผ ๊ฐ์ ์์กด์ฑ์ ์ถ๊ฐํ๊ณ ์ค์นํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ ํ๋ฌ๊ทธ์ธ์ ๋ถํ๊ฒํฉ๋๋ค.
ํน์ ๋ฌธ์ ๋ก ๋์ ๊ฐ๋ฉด ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@dummdidumm ๋๋ ๋น์ ์ ๊ฐ์ ์ ๋ํด ๋๋๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ๊ฐ์ธ์ ์ผ๋ก Typescript๊ฐ ์ผ๋ฅ ์ง์์ ๋ณด์ฅํ๋ ํน์ ์์ค์ ์ธ๊ธฐ์ ๋๋ฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ถ๋ถ์ ์๋ก์ด ์ฝ๋๋ฒ ์ด์ค๋ Typescript๋ก ์์ํ๊ณ ์ด์ ์ฝ๋๋ฒ ์ด์ค๋ ์ ๊ทธ๋ ์ด๋๋๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋ง์ ์ฌ๋๋ค์ด Svelte๋ฅผ ์๋ํ๋ ๊ฒ์ ์ฐจ๋จํ๊ณ ์์ต๋๋ค : https://news.ycombinator.com/item?id=21376557
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ผ๋ฅ ๋ฐ๋ฒจ ์ง์์ ๊ฑด๋ ๋ฐ๊ณ ์ฌ๋๋ค์ด ์ผ๋ง๋ ๋ถํํ๋์ง๋ณด๊ณ ์ถ์ต๋๋ค. ๊ตฌ์ฑ์ ๋๋ฌด ๋ง์ ๊ฐ๋ณ์ฑ์ด ์๊ณ ์ง์ ์ธก๋ฉด์์ ์ ์บ์ ์ด ์ ์์ต๋๋ค.
๋ํ ์ด๋ฌํ ๋ง์ฅ์ผ์น ์ง์์ ๋๋ฌ ํ CSS ์๋ฃจ์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ Svelte๋ ์ด๋ฏธ ํ๋ฅญํ ๋ฒ์์ CSS ์๋ฃจ์ ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํ์ํ ๋ ์๋ฐ ์คํฌ๋ฆฝํธ๋งํผ ํ์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์ํ! ํฌ์ธํฐ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ข์, ๊ทธ๋์ ์ด๊ฒ์ ๋ด๊ฐ ๋์๊ณ ์ค์ ์ฑ์์ ์์ง ํ ์คํธํ์ง ์์๋ค๋ ๊ฒ์ ๋๋ฌ๋ธ๋ค ๐
๋์ด์ผ ๋ณด๋ฉด ๋ช ๋ฐฑํ ๋ ๊ฐ์ง ์์ ์ ์ข ์์ฑ์ด ์์ง๋ง ๊ฒฝ๊ณ ๋ ๋น์ ์ ํ๋ฝํ๊ฒ ๋ง๋ญ๋๋ค.
1. Error: Cannot find module 'svelte/package.json' 2. Error: [svelte-preprocess] Error transforming 'typescript'. Cannot find module 'typescript'
VSCode๊ฐ Typescript์์ ์๋ํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ์ฌ๋๋ค์ด ๋น ๋ฅด๊ฒ ๋ ์ ์๋๋ก ๋์ฒด Typescript ๋ฐ Svelte๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ๋ฉ์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
package.json์ ํฅ๋ฏธ ๋กญ์ต๋๋ค. ํ์ธํด์ผํฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ๋ด์ฅ ๋ svelte ๋ฒ์ ์ผ๋ก ๋์ ๊ฐ์ผํฉ๋๋ค. ๊ทธ ์ธ์๋, ์ด๊ฒ์ ์ด๋ฏธ ํ์ดํ ์คํฌ๋ฆฝํธ์์๋ง ์๋ํฉ๋๋ค. svelte.config.js๋ฅผ ์์ ํ ์ญ์ ํด์ผํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ typescript๋ฅผ ๋ค๋ฃฐ ์ ์์ง๋ง ๊ทธ ์ด์์ ์ฒ๋ฆฌ ํ ์์๋ ํด ๋ฐฑ์ด ์ฌ์ฉ๋ฉ๋๋ค. ํ์ฌ ํด๋น ์์ญ์ ๋๋ฌด ๋ง์ ๋ณ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฌธ์ํ๋์ง ์์์ต๋๋ค.
๋ค, ๋๋์ต๋๋ค! svelte.config.js
์ ๊ฑฐํ๊ณ svelte
๋ฐ typescript
์ข
์์ฑ์ ์ถ๊ฐํ์ต๋๋ค. ๋งค๋ ฅ์ฒ๋ผ ์๋ํฉ๋๋ค!
๋จ์์๊ฒ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ๊ฐ๋ฅด์ณ ์ค @egnus ์๊ฒ๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์, svelte.config.js
์ ๊ฑฐํ๋ฉด ๋ฌธ์ ๋ ํด๊ฒฐ๋์์ต๋๋ค.
@dummdidumm ํ์ธํ๊ณ
Initialize language server at c:/PATH/TO/PROJECT/
Initialize new ts service at
Trying to load config for c:/PATH/TO/PROJECT/src/App.svelte
Found config at c:\PATH\TO\PROJECT\svelte.config.js
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Using Svelte v3.22.3 from c:\PATH\TO\PROJECT\node_modules\svelte\compiler
Preprocessing failed
Error: Cannot find any of modules: node-sass,sass
at Object.exports.importAny (c:\PATH\TO\PROJECT\node_modules\svelte-preprocess\dist\utils.js:1:2844)
๋ํ svelte.config.js
ํ์ผ์ ์ ๊ฑฐํ๋ ์คํ์ํ์ง๋ง ์ ๊ฒฝ์ฐ์๋ ์๋ํ์ง ์์์ต๋๋ค. ๊ทธ๋๋ ํ ๋ก ์ ๋ํด ์ดํด ํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด typescript ์ ์ฒ๋ฆฌ๊ธฐ๋ง ์ฌ์ฉ๋๋ ์ํฉ ๋ง ์์ ํ๋ ค๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ด ์ ๊ธฐํ๋ ์ง๋ฌธ์ Svelte๊ฐ node_modules
๋์ ์์คํ
๊ฒฝ๋ก์์์ node-sass
๋๋ sass
๋ฅผ ์ฐพ๊ณ ์๋์ง ์ฌ๋ถ์
๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ํด ๋ก์ปฌ๋ก node-sass
์ค์นํ์ง๋ง ์ ์ญ ์ ์ผ๋ก ์ค์นํ์ง๋ ์์์ต๋๋ค.
"๋ชจ๋์ ์ฐพ์ ์ ์์ : ..."์ค๋ฅ๋ ํจํค์ง๋ฅผ ์ฐพ์ ์์๋ ๊ฒฝ์ฐ, ๋ชจ๋ ํ์ธ์์ ์ฐพ์ง ๋ชปํ๊ฑฐ๋ ๋ฐ๊ฒฌํ์ง๋ง ๋
ธ๋ ๋ฒ์ ์ด ์ผ์นํ์ง ์์ node-sass๊ฐ ๋ฐ์ํ๋ฉด ๋ํ๋ ์ ์์ต๋๋ค. ์ค๋ฅ. svelte-preprocess
๋์ด ๋ ์ค๋ฅ๋ฅผ ๋ชจ๋ ์ผํค๊ณ "๋ชจ๋์ ์ฐพ์ ์ ์์ต๋๋ค : ..."๋ฅผ ๋ด ๋ณด๋
๋๋ค.
๋๋ ์ด๊ฒ์ ์๋ํ๊ณ ๋ด๊ฐ ๊ฒช์ ๋ฌธ์ ๋ svelte.language-server.runtime
๋ฅผ ์ค์ ํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.
@JoeBobMiles js ํ์ผ์์ node-sass
๋ฅผ ์๊ตฌํ๊ณ ๋
ธ๋๋ก ํ์ผ์ ์คํํ์ฌ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
const nodeSass = require('node-sass')
console.log(nodeSass)
์ด ํ
์คํธ ์ค @JoeBobMiles ๋ svelte.config.js
์ ๊ฑฐํ๋ ๊ฒ์ด ์๋๋ผ DevDependency๋ก sass
๋ ์ค์นํ๊ณ (๋
ธ๋ sass ๋ง ์์) ์ ์ญ ์ ์ผ๋ก node-sass๋ฅผ ์ค์นํ์ต๋๋ค.
์ด๋ฏธ ์ด์ ์ ์ฑ๊ณตํ์ง ๋ชปํ ์ํ์์ JS ํ์ผ์ ์ ๊ฑฐํ์ ๋ Svelte Beta๊ฐ ์๋ํ์ง๋ง ๋ค๋ฅธ ์ธ๋ถ ์ฌํญ ์ค ์ด๋ค ๊ฒ์ด ์ํฅ์ ๋ฐ์๋์ง ์ค์ ๋ก ์ ์ ์์ผ๋ฉฐ ์ง๊ธ์ ํ
์คํธ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ถ๊ฐ ๋ณ๊ฒฝ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ์๋ ค์ฃผ์ญ์์ค. ๋ํ ์๋ ํ ๋๋ง๋ค Language-tools ๋ฐ vscode ์ฐฝ์ ๋ค์ ์์ํ์ญ์์ค.
@ jasonlyu123 ์กฐ์ธ ๊ฐ์ฌํฉ๋๋ค. ์ฝ๋ ์ค ๋ํซ์ ์ฌ์ฉํ์ฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ผ๋ฏ๋ก node-sass
๊ฐ ์ค์ ๋ก ์๋ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. (์นํฉ์ด ๋ฌธ์ ์์ด ์ปดํ์ผ ๋์๊ธฐ ๋๋ฌธ์์ด ๊ฒ์ฌ๊ฐ ์ค๋ณต๋์์ ์ ์๋ค๋ ๊ฒ์ ๋ฐฉ๊ธ ์
๋ ฅ ํ ๊ฒ์ผ๋ก ๊นจ๋ฌ์์ต๋๋ค.)
๊ทธ๋ฌ๋ node-sass
๊ฐ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. sass
์ค์นํ๊ณ sass
๋ง ์ค์น ํ ํ Svelte Beta๋ ๊ฒฝ๊ณ ๋ณด๊ณ ๋ฅผ ์ค์งํ์ต๋๋ค. ๋ด ํ๋ก์ ํธ์์ node-sass
์ ์ ๊ฑฐํ๋๋ฐ ๊ฒฝ๊ณ ๊ฐ ๋ค์ ๋ํ๋์ง ์์์ต๋๋ค. Svelte Beta๋ sass
๋๋ node-sass
๋์ sass
๋ง ์ฐพ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ํ lang
๊ฐ์ scss
์์ sass
๋ก ๋ณ๊ฒฝํ๋ ์์
์ ์ํํ์ผ๋ฉฐ linting๊ณผ ๊ด๋ จ๋ ์ฌ๋ฏธ์๋ ๋์์ ๋ฐ๊ฒฌํ์ต๋๋ค. Svelte Beta๋ ๋ ์ด์ ๋ถํํ์ง ์์ง๋ง VS Code์ CSS linter๋ ์คํ์ผ ํ๊ทธ ๋ด์์ ๋ค์ฌ ์ฐ๊ธฐ ๊ธฐ๋ฐ Sass ๊ตฌ๋ฌธ์ ๋ณด๋ ๊ฒ์ ์ข์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
Svelte ๋ฒ ํ ๋ฌธ์ ๋ณด๋ค VS ์ฝ๋ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
SASS๋ ํ์ฌ๋ก์๋ ์ง์๋์ง ์์ต๋๋ค. Linting ๋ฑ์ ์ํด https://github.com/microsoft/vscode-css-languageservice/tree/master/src ๋ฅผ ์ฌ์ฉํ๋ฉฐ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ SASS๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํตํด ์ค๋ฅ๊ฐ ์์ ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ค๋ฅธ ์ฌ๋์ด์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ด ๋ฌธ์ ์ ์์ธ์ ํ์ ํ๊ธฐ ์ํด์ด ๋ฌธ์ ๋ฅผ ์ด์ด๋๊ณ ์ถ์ต๋๋ค.
๋ฌธ์ ์ ๋ํ ์ฝ๊ฐ์ ํผ๋๋ฐฑ. ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ "svelte.language-server.runtime": "/<LOCAL_PATH>/bin/node"
์ ์ค์ ํ์ฌ ํด๊ฒฐํ์ต๋๋ค.
๋๋ ์ด๊ฒ์ด vscode ํ์ฅ Code Helper (Renderer)
์ ๊ธฐ๋ณธ ๋
ธ๋ ๋ฐํ์์ด ์ ์ ์ฌ์ฉ์ ์ง์ ๋น๋์ด๊ธฐ ๋๋ฌธ์ node-sass์ ๊ฐ์ ๋ค์ดํฐ๋ธ lib๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
ps aux
์ถ๋ ฅ :
/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) --inspect=6009 /Users/username/.vscode/extensions/svelte.svelte-vscode-99.0.39/node_modules/svelte-language-server/bin/server.js --node-ipc --clientProcessId=72991
์ด๊ฒ์ ์ด๋๊ฐ์ ๋ฌธ์ํํด์ผํฉ๋๋ค. ๋๋ ๋ ๋์ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก exec('/usr/bin/env which node')
์ ๊ฐ์ ํ์ฅ ๋ด์์ ์ฌ์ฉ์์ ๋ํ ์ผ๋ฐ ๋
ธ๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฐพ์ต๋๋ค (Windows์์ ๋์ผํ ์์
์ ์ํํ๋ ๋ฐฉ๋ฒ์ ํ์คํ์ง ์์).
๋ฌธ์ํ ๋์ด ์์ผ๋ฉฐ IDE์ ๊ฒฝ๊ณ ๋ ์ด์ ๋ํด ์์ํฉ๋๋ค.
๊ฒฝ๊ณ ๋ ๋ค๊ฐ์ค๋ ์ ํ ๋ฆด๋ฆฌ์ค์์ ๋ ๋์์ง ๊ฒ์ด๋ฉฐ ์ด๋ฏธ ์ผ๊ฐ์ ํ ์คํธ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์์ผ๋ก ๋ฌธ์ ๋ฅผ ์ขํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด ๋ฌธ์ ๋ ์ด๋ฏธ ๋๋ฌด ๋ง์ ์ผ์ด ๋ณ๋ ฌ๋ก ์งํ๋๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ถ๋ถ์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง๋ ์๋๋ผ๋์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ฒ ์ต๋๋ค. SCSS ๊ด๋ จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ์ ๋ฌธ์ ๋ฅผ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ์ด๊ฒ์ ์๋ํ๊ณ ๋ด๊ฐ ๊ฒช์ ๋ฌธ์ ๋
svelte.language-server.runtime
๋ฅผ ์ค์ ํ์ฌ ํด๊ฒฐํ ์ ์์ต๋๋ค.@JoeBobMiles js ํ์ผ์์
node-sass
๋ฅผ ์๊ตฌํ๊ณ ๋ ธ๋๋ก ํ์ผ์ ์คํํ์ฌ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.