рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдРрд╕реЗ рддреАрди рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рдореБрдЭреЗ svelte рдХреА a11y рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
lua
lspconfig.svelte.setup{
cmd = { "yarn", "svelteserver", "--stdio" };
on_attach = on_attach;
settings = {
svelte = {
plugin = {
svelte = {
compilerWarnings = {
["a11y-no-onchange"] = "ignore"
}
}
}
}
}
}
svelte-check , рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░ package.json
рдмрджрд╕реВрд░рдд рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдЬрдЧрд╣ рд╣реИ
{
"val": "svelte-check --compiler-warnings a11y-no-onchange:ignore",
"validate": "yarn val --threshold warning && yarn tsc --noEmit"
}
рдПрд╕реНрд▓рд┐рдВрдЯ
settings: {
'svelte3/ignore-warnings': ({ code }) => code === 'a11y-no-onchange',
// ...
},
рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛: svelte.config.js
ред рдЗрд╕реЗ svelte-preprocess
рдХрд╛рд░рдг рдЯрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпреЗ рдЙрдкрдХрд░рдг рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА svelte-preprocess
рд▓рд┐рдП рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ onwarn
рд▓рд┐рдП рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ?
рд╕рд╛рде рд╣реА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореИрдВ рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореИрдВ рднрд╛рд╖рд╛ рдЙрдкрдХрд░рдг рдФрд░ рдмрдВрдбрд▓рд░ рджреЛрдиреЛрдВ рдореЗрдВ svelte.config.js
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╡реНрдпрд╛рдкрдХ-рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдпрд╣ рд╕рд╛рдорд╛рди рднреА: https://github.com/sveltejs/language-tools/tree/master/packages/svelte-vscode#settings
рдирд░ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдирд╛рдордХрд░рдг рдкрд░ рд╕рд╣рдордд рд╣реЛрдЧрд╛/рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдпрд╣ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╕рднреА рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЗрд╕рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдЖрдИрдбреАрдИ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд░реЗ рдФрд░ рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░реЗред
рддреЛ рдЗрд╕рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрд╡рд░реВрдк рдореЗрдВ рдСрдирд╡рд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рджрд┐рд╢рд╛ рд╣реИ?
рдореМрдЬреВрджрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рдХреЗ рдСрдирд╡рд╛рд░реНрди рдХреЙрд▓рдмреИрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢рд╛рдпрдж рд╕рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди svelte.config.js
рдореЗрдВ рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдХрд▓реНрдк рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддрд┐-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред :рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛:
рд╕реНрд╡рд░реВрдкрдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ .prettierrc
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрдВрджрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╕реБрдВрджрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред https://www.npmjs.com/package/prettier-plugin-svelte
рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реА-рдкреНрд░рддрд┐рдмрджреНрдз рд╣реБрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрдВрджрд░ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди package.json
ред
{
"prettier": {
"singleQuote": true,
"printWidth": 80,
"plugins": [
"prettier-plugin-svelte"
]
}
}
рдХреНрдпрд╛ рдПрд▓рдПрд╕ рд╕реЗ рд╕реБрдВрджрд░ рдЖрдордВрддреНрд░рдг рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рд╣реИ? рдпрд╛ рдЗрд╕реЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХрд░рддрд╛ рд╣реИ? :рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛:
рдпрд╣ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореЗрд░рд╛ рдХрд╣рдирд╛ рдерд╛ рдХрд┐ рд╕реНрд╡рд░реВрдкрдг рд╡рд┐рдХрд▓реНрдк svelte.config.js
рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ, рдЕрдм рдореИрдВ рдХреБрдЫ рдФрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ onwarn
рдпрдереЛрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП svelte.config.js
ред
рдмрд╛рдПрдБ рдлреИрд╕рд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдореЗрдВ onwarn
рдХреЙрд▓рдмреИрдХ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд▓рдЧрддрд╛ рд╣реИ?
рдмрдВрдбрд▓рд░ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдПрдХреАрдХреГрдд рд╡рд┐рдиреНрдпрд╛рд╕ред
рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП svelte.config.js
рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рддрдВрддреНрд░ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ESLint рдореЗрдВ, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ ESLint рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдб рдХрд░ рдЪреБрдХрд╛ рд╣реИред рдпрд╣ рдХрдИ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд .eslintrc.js
рдлрд╝рд╛рдЗрд▓реЛрдВ (рдпрд╛ JSON рдлрд╝рд╛рдЗрд▓реЗрдВ, рдпрд╛ YAML рдлрд╝рд╛рдЗрд▓реЗрдВ, рдпрд╛ eslintConfig
рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА package.json
рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ) рдХреЗ рд╡рд┐рд▓рдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ ESLint рдкреНрд▓рдЧрдЗрди рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдлрд╛рдЗрд▓ рдХрд╣рд╛рдВ рдереА, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП svelte.config.js
ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рд╣реА рдПрдХреАрдХреГрдд рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ ESLint рдХреЛрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рддреЛ рд╕рдорд╛рдзрд╛рди рд╣реИ:
svelte-vscode
рдХрд░рддрд╛ рд╣реИредsvelte.config.js
рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ .eslintrc.js
рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрдирджреЗрдЦреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредsvelte-check
рд╕рд┐рдЦрд╛рдПрдВредрдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ svelte-check
?
svelte-check
, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреВрдорд┐ рдореЗрдВ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред :рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛:
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рдордВрдЬрд╕реНрдп рдХреЗ рд▓рд┐рдП рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВ: рднрд╛рд╖рд╛-рд╕рд░реНрд╡рд░, рд╡реНрдпрд╛рдкрдХ-рдЬрд╛рдВрдЪ, рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрди, рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрдиред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рдордВрдЬрд╕реНрдп рдХреЗ рд▓рд┐рдП рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВ: рднрд╛рд╖рд╛-рд╕рд░реНрд╡рд░, рд╡реНрдпрд╛рдкрдХ-рдЬрд╛рдВрдЪ, рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрди, рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрдиред