我正在编写VS Code模块。它使用highlight.js
生成HTML以突出显示源代码的语法。 highlight.js
npm模块包含一个文件夹styles
,其中充满了我要使用的CSS文件。
我该怎么做才能在运行时访问这些CSS文件?
我是说所有。
我怀疑在没有显式引用每个CSS文件的情况下,需要使用require
之类的东西将它们捆绑在一起,但是我需要有关如何执行此操作的指南。
还有人如何访问捆绑的资源?
答案 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文件夹中的事实。
这在调试器中有效。