我正在尝试在我的aurelia应用程序(基于typescript)中添加prismjs作为语法highliter,我已经完成了一半,如下所示
1-安装棱镜

yarn add prismjs

2-添加css和代码部分
<template>
  <require from="prismjs/themes/prism.css"></require>

  <pre><code class="language-sql">${highlightedSQL}</code></pre>
</template>

3-导入组件中的prismjs并调用highlite。
import "prismjs";
import prismsql from "prismjs/components/prism-sql";

let Prism; // very weird, I have to declare a global variable, other wise it won't work(typescript error)
@inject(HttpClient)
export class Detail {

highlight() {
    this.highlightedSQL = Prism.highlight(data.sql, Prism.languages.sql, 'sql');
}
}

我发现了这个错误
Unhandled rejection TypeError: Cannot read property 'highlight' of undefined

有什么方法可以让它发挥作用呢?

最佳答案

我会把我的评论作为一个答案来发表,只是为了结束这个问题。
而不是import "prismjs";let Prism;你应该有import Prism from 'prismjs';

09-25 15:32