在 Visual Studio Code 扩展开发中使用 HTML 文件

Vin*_*sPJ 2 visual-studio-code vscode-extensions

我想知道是否可以在单独的文件中使用 HTML、CSS 和 JavaScript 在 Visual Studio Code 中创建扩展。

我正在使用 VS Code Webview API。我试图创建一个文件夹并放置我的 HTML 和 CSS 文件,但它没有用。我现在不知道如何在扩展 GUI 上使用这些文件。我什至尝试使用 NodeJSreadFile()读取 HTML 文件,但无法读取文件。使用相对路径./html/file...不起作用。

我错过了什么?我对 JS、Node 和 VS Code 还很陌生……

在文档示例中,他们将 HTML 放入这样的字符串中:

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(vscode.commands.registerCommand('catCoding.start', 
() => {
    // Create and show panel
    const panel = vscode.window.createWebviewPanel('catCoding', "Cat Coding", 
    vscode.ViewColumn.One, { });

    // And set its HTML content
    panel.webview.html = getWebviewContent();
}));
}

function getWebviewContent() {
    return `<!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Cat Coding</title>
    </head>
    <body>
    <img src="https://media.giphy.com/media/JIX9t2j0ZTN9S/giphy.gif" width="300" />
    </body>
    </html>`;
}
Run Code Online (Sandbox Code Playgroud)

是否可以将 HTML 或至少 JS 和 CSS 放在一个单独的文件中?这种方式可以使用库并拥有更清晰的代码。

链接到文档:VS Code Webview API

谢谢!

Vin*_*sPJ 7

它对文件夹内文件的工作方式src/html/是:

import * as path from 'path'
import * as fs from 'fs'

const filePath: vscode.Uri = vscode.Uri.file(path.join(context.extensionPath, 'src', 'html', 'file.html'));
panel.webview.html = fs.readFileSync(filePath.fsPath, 'utf8');
Run Code Online (Sandbox Code Playgroud)