vue.js - 如何将 webpack 摇树功能应用到 Vue 模板的 v-if 指令?
问题描述
Vue@2.6.14 Webpack@4.29.6
<template>
<module-a v-if="isClientA"></module-a>
<module-b v-else></module-b>
</template>
<script>
export default {
computed: {
isClientA() {
return process.env.VUE_APP_CLIENT === 'A'
}
}
}
</script>
在上面的情况下,如果 tree shaking 功能有效,当 VUE_APP_CLIENT 设置为 A 时,module-b 的代码不应该包含在构建包中。但是它失败了。
摇树在模板语法中不起作用吗?
希望您的帮助,谢谢。
解决方案
据我所知,摇树在脚本级别而不是在 vue 模板上工作。也许您应该尝试将客户端组件/模块传递给模板?
<template>
<div :is="clientModule"></div>
</template>
created() {
if(process.env.VUE_APP_CLIENT === 'A') {
this.clientModule = moduleClientA
}
else {
this.clientModule = moduleClientB
}
}
如果我错了,您还需要修复计算属性,因为您使用“=”而不是“==”。
推荐阅读
- css - 在 typescript 中使用 css 模块时出错与 webpack 配置反应
- blazor - MudBlazor WASM 项目在启动时挂起
- c - 在 Visual Studio (C) 中编译期间,我无法获得正确的调试
- javascript - VSCode JSDoc of Promise
- javascript - D3 - Matplotlib 类似颜色条
- c++ - opengl中3d空间平面上的程序网格
- python - 通过 setuptools 安装第三方包
- xml - 如何使用 powershell 读取 o:xml?
- c++ - 在 C++ 中检查多个值是否相等
- asterisk - Asterisk 音乐暂停