ISSUE - kimhanui/vscode-Nyan-Cat GitHub Wiki
C:\Users\๊นํ๋ฌ\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\code\electron-browser\workbench\workbench.html
The reason (maybe)is...
WSL2์์ home dir
vscode extension์ ์์ค ํ์ผ์ OS๋ง๋ค ์กฐ๊ธ์ฉ ๋ค๋ฅธ ๊ฒฝ๋ก์ ์ ์ฅ๋๋๋ฐ WSL2๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ๋,
- ํจ๋ ๋ฑ UI์ ๊ดํ extension์ ์๋์ฐ์, ์ด๋ฒคํธ๋ ๋ก์ง์ ๊ดํ ๊ฑด ๋ฆฌ๋ ์ค์ ์ค์นํ๋ค๋ ๊ฒ ๊ฐ์ ์๋์ฐ์ชฝ๋ง ๋ดค์๋ค.
- ๊ทธ๋ฐ๋ฐ Nyan cat์ ๊ฒฝ์ฐ : ์๋์ฐ, ๋ฆฌ๋ ์ค ๋ ๋ค์ ์ค์น๋ผ์์๋ค. (์ด๊ฒ ๊ฐ์ฅ ํฐ ์ํ)
- WSL์ ์ฌ์ฉํ๋ฉด์ extension์ ๋ค์ด ๋ฐ์ผ๋ฉด ์๋ ๋ ๊ฒฝ๋ก์ ๋ค ์ค์น๋จ์ ์ฃผ์ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์๋์ฐ:User/kimhanui/.vscode/extension/
, ๋ฆฌ๋ ์ค:~/.vscode-server/extension/
๊ทธ๋์ ์ง๊ธ๊น์ง WSL2๋ฅผ ์ฐ๋ฉด์ ์ด๋ ํ ์ด๋ฒคํธ๋ ๋ฐ์ ์ ์์๋๊ฒ ์์ ๋ผ์ผ ํ ๋ถ๋ถ๋ค์ด ์๋์ฐ์ชฝ extension ์์ค์์๋ง ์์ ๋ผ์ ๊ทธ๋ฌ๋ ๊ฒ ๊ฐ๋ค.
์ด ์ฌ์ง์ vscode ์ฐฝ ์ธ๊ฐ๋ฅผ ๊ฒน์ณ์ ํ๋จ์ status bar
๋ง ๋ณด์ด๊ฒ ํด ๋์ ๊ฒ์ธ๋ฐ, ์๋์ ๋ถํฐ ์๋์ฐ ๊ฒฝ๋ก์ extension์์ค์ ์ฐฝ
, ์ ์๋ฅผ ๋๋ฒ๊น
ํด์ ๋์ด ํ
์คํธ์ฐฝ(๋๊ฐ์ด ์๋์ฐ ๊ฒฝ๋ก)
WSL ๊ฒฝ๋ก์ extension์์ค์ ์ฐฝ์ด๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ์์ ์๋ ์ฐฝ๋ง
( ^^ )ํ์๊ฐ ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ extension์์ค๋ฅผ ์๋์ฐ์ชฝ ๊ฒฝ๋ก์์๋ง ์์ ํด์ ์๋์ฐ์์ ์ฐ vscode๋ง ๋ฐ์๋ผ๋ณด์ธ๊ฒ์ด๋ค. ์ฆ, ๋ฆฌ๋
์ค ์ชฝ extension ์์ค๋ ์์ ํ๋ค๋ฉด
( ^^ )`์ ๋ณผ ์ ์๋ค.
์ฑ๊ณต์ ์ผ๋ก ๋ฐ์๋ ๋ฆฌ๋
์ค ์ชฝ vscode ์ฐฝ
์ฌ๊ธฐ์ ์ ์ ์๋ ์ ์
-
ํจ๋ ๋ฑ UI์ ๊ดํ extension์ ์๋์ฐ์ ์ค์นํ๋ ๊ฒ์ด ์๋,
UI์ ๊ดํ ๊ฒ์ด๋ ์๋๋ ์ค์นํ๊ฒ ๋ค๊ณ ์ ํํ OS์ ๋ฐ๋ผ extension ์์ค๊ฐ ์ถ๊ฐ๋๊ณ ๊ทธ ์์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก extension์ด ์ ์ฉ๋๋ค๋ ๊ฒ์ด๋ค. (extension ์ค์นํ ๋ ๋ก์ปฌ์ ์ค์นํ ๊ฑด์ง WSL2์ ์ค์นํ ๊ฑด์ง ์ ํํ๊ฒ ๋์จ๋ค. ๋ค ๊ทธ๋ฐ๊ฑด ์๋)
๋ก์ปฌ์ ์ค์นํ๋ ๋ฒํผ๋ง ์์
WSL์ ์ค์นํ๋ ๋ฒํผ๋ง ์์ -
์ด์ ์์ ํด์ผํ ๊ณต๊ฐ์ ์์๋ค. ๋ด ๋ก์ปฌ์ ์ค์นํ extension์ ์์ ํ๊ณ ์ถ์ผ๋ฉด ํด๋น OS์ extension ์์คํ์ผ์ ์ฐพ์๊ฐ๋ฉด๋๊ณ , ๋ด ๊ฒฝ์ฐ๋ WSL์ ์ฌ์ฉํ ๋ ์ ์ฉ์ํฌ ์ ์์ด์ผํ๋ฏ๋ก ๋ฆฌ๋ ์ค ์ชฝ ๊ฒฝ๋ก๋ฅผ ์ฐพ์๊ฐ๋ฉด ๋๋ค.
์ด์ ์์ค ๋ด๋ถ์์ ๊ณ์ ์์ฌ์ค์ด์๋ htmlDirPath
๋ฅผ ์ฐ์ด๋ณผ ์ ์์๋ค.
const htmlDirPath = path_1.normalize(
${path_1.dirname(require.main.filename)}/vs/code/electron-browser/workbench);
๋ก๊ทธ๋ก ์ฐ์ด๋ณด๋ ์ ๊ฐ์
/home/kimhanui/.vscode-server/bin/08a217c4d27a02a5bcde898fd7981bda5b49391b/out/vs/code/electron-browser/workbench
์ด์๊ณ
๋ค์ ๋ถ์ /vs/code/electron-browser/workbench
๋ ์๋์ฐ ์ชฝ์์ vscode๋ฅผ ์ค์นํ๋ฉด์ ์๊ธด ๊ฒฝ๋ก๋ก ๋ณด์ด๋๋ฐ
Nyan-cat์ ๊ฐ๋ฐ์๊ฐ ์ด ๊ฒฝ๋ก์ ์ ๊ทผํ๋ ค๋ ์ด์ ๋ ๋ญ๊ฐ UI๋ฅผ ์์ ํ๊ธฐ ์ํจ์ด์๋ ๊ฒ ๊ฐ๋ค.
์ด์จ๋ ์๋์ฐ์์ ์ง์ ์ ๊ทผํด์ ์ฐพ์ ์ ์๋ ๋ค์ /vs/code/electron-browser/workbench
๊ฐ ๋ถ๋ ๊ฒฝ๋ก์ full path๋
C:\Users\๊นํ๋ฌ\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\code\electron-browser\workbench
๋ก
๊ฐ๋ฐ์๊ฐ ${path_1.dirname(require.main.filename)}
๋ก ์ฐพ๊ณ ์ ํ๋ ๊ฒฝ๋ก๋ C:\Users\๊นํ๋ฌ\AppData\Local\Programs\Microsoft VS Code\resources\app\out
์๋๋ฐ ๋ก๊ทธ๋ก ์ฐ์ด๋ณด๋ ๋ญ๊ฐ ์๋ชป ์ฐพ์๊ฐ๋ ๋ฏ ํ๋ค. ์ฌ๊ธฐ์ ์ ์ ๋ฆฌ๋
์ค ๊ฒฝ๋ก์์ ๋๋ฒ๊น
ํ ๋ ๋ง๋ ์๋ฌ๋ฉ์์ง๋ฅผ ์ดํดํ ์ ์์๋ค.
ENOENT means โNo such directory entryโ
It's an abbreviation of Error NO ENTry (or Error NO ENTity), and can actually be used for more than files/directories. https://stackoverflow.com/questions/19902828/why-does-enoent-mean-no-such-file-or-directory
์๋ ๊ฒฝ๋ก์. ๋ญ๊ฐ ์๋ชป ์ฐพ์์จ๊ฒ ๋ง๋ ๊ฒ ๊ฐ๋ค.
Nyan-cat์ ํค์๋๋ workbench ์ปค์คํฐ๋ง์ด์ง์ด์๋ค.
vscode extending workbench: https://code.visualstudio.com/api/extension-capabilities/extending-workbench
์ด์ ๋ช
๋ น์ด ํธ์ถ๊น์ง ์ ์๋๋๋ Nyan Cat์ด ๋ํ๋์ง ์๋ ๊ฒ๋ง ์์๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์ css๋ฅผ ๋ด๋นํ๋ nyan-cat.js
ํ์ผ์ ์ค๋จ์ ์ ์ฐ์ด ์ดํด๋ดค๋ค.
workbench.js
์์ ๋ฌธ์ ์๋ ๋ถ๋ถ
// add default trustedTypes-policy for logging and to workaround
// lib/platform limitations
window.trustedTypes?.createPolicy('default', {
createHTML(value) {
// see https://github.com/electron/electron/issues/27211
// Electron webviews use a static innerHTML default value and
// that isn't trusted. We use a default policy to check for the
// exact value of that innerHTML-string and only allow that.
if (value === '<!DOCTYPE html><style type="text/css">:host { display: flex; }</style>') { //<--์ฌ๊ธฐ์ ์๋ฌ๋๋ ๋ฏ ํ๋ค
return value;
}
throw new Error('UNTRUSTED html usage, default trusted types policy should NEVER be reached');
// console.trace('UNTRUSTED html usage, default trusted types policy should NEVER be reached');
// return value;
}
});
<span>
์ฒ๋ฆฌ๋ผ์ ์์ง ๋น์ด์์
css ๋๋ฒ๊น
์์ ๋๋ฒ๊น
์ฉ vscode ์ฐฝ ์์ ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ๋ถ์ด์ ๋์์ง๋ค.
์์ ๋ถ๋ ๊ฒฝ๋ก๋ ์ด๋ฌ๋ค: /usr/share/code/resources/app/out
๊ฒฝ๋ก์ ์ ๊ทผํ ๊ถํ์ด ์๋ค๋ ๊ฒ ๊ฐ์
$ cd /usr/share/code/resources/app/out/
$ sudo chown -R <user-name> <directory-name>
๋ฅผ ์คํ์์ผ์ฃผ๋ ์ ๊ฒฝ๊ณ ๋ ์ฌ๋ผ์ก๋ค.
<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src 'self' https: data: blob: vscode-remote-resource:; media-src 'none'; frame-src 'self' vscode-webview: https://*.vscode-webview-test.com; object-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; connect-src 'self' https: ws:; font-src 'self' https: vscode-remote-resource:;">
<meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'; trusted-types default TrustedFunctionWorkaround ExtensionScripts amdLoader cellRendererEditorText defaultWorkerFactory diffEditorWidget domLineBreaksComputer editorViewLayer diffReview extensionHostWorker insane notebookOutputRenderer safeInnerHtml standaloneColorizer tokenizeToString webNestedWorkerExtensionHost webWorkerExtensionHost;">
</head>
<body aria-label="">
<script id="NyanCatConfiguration">window.NyanCatConfiguration = {"backgroundColor":"transparent","name":"bday"}</script>
</body>
<!-- Init Bootstrap Helpers -->
<script src="../../../../bootstrap.js"></script>
<script src="../../../../vs/loader.js"></script>
<script src="../../../../bootstrap-window.js"></script>
<!-- Startup via workbench.js -->
<script src="workbench.js"></script>
<script src="file:///home/kimhanui/.vscode-server/extensions/zhengrenzhe.nyan-cat-0.0.8/out/nyan-cat.js"></script>
</html>
https://code.visualstudio.com/api/references/extension-guidelines#progress-status-bar-item
๋๋ฒ๊น
์ ํด๋ณด๋ค๊ฐ uncaught exception
๊น์ง ํฌํจํด๋ณด๋ .vscode-server/bin/(์๋ฌธ์ซ์์กฐํฉ๊ธด์ด๋ฆ)
๋ด๋ถ์์ loader.js(?)๋ฅผ ๋ชป ์ฐพ๋ ๊ฒ ๊ฐ์๋ค.
vs code server์ ๋ฌธ์ ๊ฐ ์๋๊ฑฐ๋ผ๋ฉด wsl์์ vs code server๋ฅผ ๋ค์ ๋ค์ด ๋ฐ์๋ณด๊ณ ์ ๊ธฐ์กด mv .vscode-server .vscode-server-old
๋ช
๋ น์ด๋ก dir ์ด๋ฆ์ ๋ฐ๊ฟ์ฃผ๊ณ code .
๋ช
๋ น์ด๋ก .vscode-server
๋ฅผ ์๋ก ๋ง๋ค์ด์ง๊ฑธ ํ์ธํ๊ณ .vscode-server-old
๋ ์ง์ ๋ค.
์ฐธ๊ณ ๋ก .vscode-server
๋ด๋ถ์ extensions
๊ฒฝ๋ก๋ ์ง์ ๋ง๋ค์ด์ค์ผํ๋ ๊ฒ ๊ฐ๋ค...