如何使用引用的节点模块中的样式表

时间:2019-02-20 04:32:26

标签: css npm visual-studio-code vscode-extensions

我正在编写VS Code模块。它使用highlight.js生成HTML以突出显示源代码的语法。 highlight.js npm模块包含一个文件夹styles,其中充满了我要使用的CSS文件。

我该怎么做才能在运行时访问这些CSS文件?

我是说所有

我怀疑在没有显式引用每个CSS文件的情况下,需要使用require之类的东西将它们捆绑在一起,但是我需要有关如何执行此操作的指南。

还有人如何访问捆绑的资源?

1 个答案:

答案 0 :(得分:0)

您无需执行任何操作。捆绑自动发生。项目的node_modules文件夹在部署后随扩展一起提供。

要访问这些模块中的资源,您需要知道它们的位置。答案是将它们部署到直接位于扩展路径上的node_modules文件夹中。

那么您如何在运行时确定扩展文件夹的位置?您可以使用VSCode extensions location variable描述的方法,但我不建议这样做。而是这样做:

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文件夹中的事实。

这在调试器中有效。