esbuild不包括HTML调用的JS函数



我在主条目JS文件中有一些JS函数,这些函数在用户交互后只能由HTML菜单调用,显然esbuild认为它们没有被使用,比如:

HTML:

<a id="ndb" onmouseenter="keeptopbar()" onmouseleave="reltopbar()" onclick="askuser('newform')">FORM</a>

script.js:

function askuser(inpv) { 
var st = "";
if (inpv === 'newform'){

编辑:我试图添加";"出口";在这些功能上,但它不起作用。

有没有一个选项可以包含在package.json中,以使esbuild包含主条目JS文件中的所有函数,或者任何其他技巧?

您可以将函数创建为全局对象的属性:

window.keeptopbar = function(){
//...
};
window.reltopbar = function(){
//...
};
window.askuser = function(inpv){
//...
};

这样一来,esbuild的树抖动不会删除它们,而且还可以确保这些函数是全局的。

您可以尝试让ESBuild相信这些函数将在您的JS中使用。这可能有效:

if (Math.random() < 0) console.log(askuser);

最新更新