Global Mixins to Nuxt v2.4 : undefined



将我的Nuxt项目从1.4升级到2.4.0后,我的全局mixins不再工作了。

我尝试仅在SSR模式下设置它,仅适用于客户端或仅用于服务器,但没有任何效果。

在我的插件/mixins 文件中,我导入了所需的所有 mixin,并检查它们是否存在于控制台.log...它确实...但是当我打开应用程序时,什么也没被识别出来。

插件/混合.js

import Vue from "vue";
import UtilMixins from "../mixins/Util";
import MomentMixins from "../mixins/Moment";
import GlobalMixins from "../mixins/Global";
Vue.mixin(UtilMixins);
Vue.mixin(MomentMixins);
Vue.mixin(GlobalMixins);

nuxt.config.js

  plugins: [
    "~/plugins/mixins.js"
  ],

使用一个混合的组件(例如,过滤器(

{{ 'test' | uppercase }}

大写混合

export default {
  filters: {
    uppercase(value) {
      return value.toUpperCase() || "";
    }
  }
}

控制台的错误

[Vue warn]: Failed to resolve filter: uppercase
(found in <Src/client/pages/login.vue> at src/client/pages/login.vue)

知道吗?非常感谢:)

如NuxtJS文档中所述,如果插件位于node_modules中并导出了ES6模块,则可能需要将其添加到transpile构建选项中:

module.exports = {
  build: {
    transpile: ['mixins']
  }
}

这对我有用。虽然我还没有尝试过多个全局混音,但您可以参考这里了解有关在 NuxtJS 中添加全局混音的更多详细信息。

简单的方法是将以下代码添加到布局文件中。请注意,全局.js的方向必须更改。

<script>
    import vue from "vue";
    import global from "~/mixins.js/global.js";
    vue.mixin(global);
    export default {
      mixins: [global]
    };
</script>

尝试将 mixins 文件夹移动到/assets,然后在插件/mixins.js:

import Vue from "vue";
import UtilMixins from "~assets/mixins/Util";
import MomentMixins from "~assets/mixins/Moment";
import GlobalMixins from "~assets/mixins/Global";
Vue.mixin(UtilMixins);
Vue.mixin(MomentMixins);
Vue.mixin(GlobalMixins);

最新更新