我有一个我不希望客户端看到的插件。不幸的是,它总是为服务器和客户端构建的。如何预防?

<template>
    <div>
        Test
    </div>
</template>

<script>
    import getAll from '~/plugins/api'
    export default {
        asyncData (context, callback) {
            getAll(function(data){
                callback(null,data);
            })
        }
    }
</script>

这是我的.vue文件。数据的获取工作正常,但我也可以从客户端查看不需要的代码。

最佳答案

也许您可以使用context.isServer属性。
让您知道您是否实际上是从服务器端进行渲染的布尔值。

<script>
import getAll from '~/plugins/api'
export default {
    asyncData (context, callback) {
        if (context.isServer) {
            getAll(function(data){
                callback(null,data);
            })
        }
    }
}
</script>

有关Nuxt上下文的更多详细信息,请点击此处:https://nuxtjs.org/api/context

更新:(感谢@Lanayx)

“注意:自Nuxt.js 2.4以来,模式已作为插件的选项引入,用于指定插件类型,可能的值为:client或server。ssr:false将适应于模式:'client',并在下一个主要版本中弃用。”
// nuxt.config.js:

export default {
  plugins: [
    { src: '~/plugins/both-sides.js' },
    { src: '~/plugins/client-only.js', mode: 'client' },
    { src: '~/plugins/server-only.js', mode: 'server' }
  ]
}

10-07 19:38
查看更多