将我的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);