Как использовать таблицы стилей из модуля узла, на который есть ссылка - PullRequest
0 голосов
/ 20 февраля 2019

Я пишу модуль VS Code.Он использует highlight.js для генерации HTML для подсветки синтаксиса исходного кода.Модуль highlight.js npm содержит папку styles, которая заполнена файлами CSS, которые я хотел бы использовать.

Что мне нужно сделать, чтобы я мог получить доступ к этим файлам CSS во время выполнения?

Я имею в виду все они .

Я подозреваю, что потребуется что-то вроде require, чтобы их можно было связывать при отсутствии явной ссылки на каждый файл CSS, но мне нужно руководство, как это сделать.

Также как получить доступ к связанным ресурсам?

1 Ответ

0 голосов
/ 21 февраля 2019

Вам не нужно ничего делать.Пакетирование происходит автоматически.Папка node_modules вашего проекта сопровождает расширение при его развертывании.

Для доступа к ресурсам в этих модулях вам необходимо знать, где они находятся.Ответ заключается в том, что они развернуты в папке node_modules, расположенной непосредственно на пути расширения.

Итак, как определить местоположение папки расширений во время выполнения?Вы можете использовать метод, описанный переменная местоположения расширений VSCode , но я не рекомендую его.Вместо этого сделайте это так:

let x = vscode.extensions.getExtension("dilcorp.groovyext");
if (!x) {
  throw new Error("Cannot resolve extension. Has the name changed? " +
                  "It is defined by the publisher and the extension name " + 
                  "which are defined in package.json`); 
}
let stylePath = `${x.extensionPath}/node_modules/highlight.js/styles`;

В приведенном выше коде есть две части.Сначала мы получаем во время выполнения информацию о расширении, которое включает его абсолютный путь к файлу в виде свойства extensionPath.

Во второй части используется тот факт, что node_modules нашего проекта расширения копируются в папку extensionPath.

Это работает в отладчике.

...