代码之家  ›  专栏  ›  技术社区  ›  ollien

在chrome扩展中呈现细枝模板

  •  1
  • ollien  · 技术社区  · 6 年前

    我试图在chrome扩展中呈现一个twig(带有twigjs)模板。我目前正在用一个browserify构建脚本编译以下类型脚本。

    import * as twig from "twig"
    
    const MAIN_TEMPLATE: string = chrome.runtime.getURL("twig/main.html.twig");
    
    document.addEventListener("DOMContentLoaded", () => {
            twig.renderFile(MAIN_TEMPLATE, (err: Error, html: string) => {
                document.querySelector("body").innerHTML = html;
            });
    });
    

    我已经确保在我的 manifest.json 如此。

    ...
        "web_accessible_resources": [
            "twig/*.html.twig"
        ]
    ...
    

    但是,在运行这个之后,我得到了下面的stacktrace。我真的不知道该怎么做,作为网址 chrome.runtime.getURL 如果我将其输入地址栏,则返回值会解决问题。

    Uncaught TypeError: t.stat is not a function
        at Object.<anonymous> (twig.js:1)
        at Object.e.Templates.loadRemote (twig.js:1)
        at Object.e.exports.twig (twig.js:1)
        at Object.e.exports.renderFile (twig.js:1)
        at HTMLDocument.<anonymous> (browser-action.ts:7)
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   ollien    6 年前

    挖掘一些 twigjs renderFile

    const MAIN_TEMPLATE_URI: string = chrome.runtime.getURL("twig/main.html.twig");
    const MAIN_TEMPLATE: twig.Template = twig.twig({href: MAIN_TEMPLATE_URI, async: false};
    
    document.querySelector("body").innerHTML = MAIN_TEMPLATE.render({tabs, tabListTemplate: TAB_LIST_TEMPLATE_URI});