gpt4 book ai didi

javascript - 使用闭包编译器和已编译的 vue.js 模板

转载 作者:行者123 更新时间:2023-12-02 23:57:19 26 4
gpt4 key购买 nike

是否可以将 Google 闭包编译器与已编译的 Vue.js 模板一起使用?

罪魁祸首是编译后的 vue 模板使用了“with”,如下所示:

with(this){/** render function here **/}

...并且闭包编译器不喜欢这样,因此提示:

The with statement cannot be used in strict mode.

但是,我不确定这是否真的是由于严格模式造成的,因为在源代码(用 webpack 打包)中,有问题的函数中没有 "use strict"; :

/***/ "./my/compiled/vue/template":
/***/ (function(module, exports) {
module.exports = {
render: function(){with(this){ /** render function here **/ }},
staticRenderFns: []
};
/***/ })

现在的问题是是否有办法在闭包编译器中进行编译?认为最简单的方法是告诉编译器传递该代码而不对其执行任何操作(未最小化的代码运行得很好,因此它似乎是有效的),但似乎没有这样的选项。

还有其他想法吗?

最佳答案

好的,我想我现在知道如何解决这个问题了。事实证明,确实,使用编译后的 .vue 模板,根据构建方式的不同,似乎会产生不同的输出。由于我只需要编译模板 - 但没有完整的单个文件组件 - 我使用了更简单的 vue-template-compiler-loader 它使用官方编译器并产生我描述的有问题的输出。现在,我尝试使用更复杂的 vue-loader (它更适合单个文件组件)进行构建,并且它似乎也适用于“仅模板”的文件。而且该加载器的输出似乎不同,因为生成的渲染函数不包含 with(this)!

现在,这段代码在闭包编译器中编译时没有问题,并且在 IE10(我的“最低目标”)中运行的第一次测试表明构建现在很好!

感谢@tony19为我指明了正确的方向!

关于javascript - 使用闭包编译器和已编译的 vue.js 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55316239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com