import Vue from "vue";
import testC from "../components/test-c.vue";
import { basePage } from "../common/basePage/basePage";
const a = {
components: {
testC
},
data() {
return {};
},
methods: {}
};
export default Vue.extend(a);
- 发布:2020-07-08 14:53
- 更新:2020-07-22 11:56
- 阅读:5908
产品分类: uniapp/小程序/字节跳动
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.0
第三方开发者工具版本号: 1.9.4
基础库版本号: 1.67.0.3
项目创建方式: HBuilderX
操作步骤:
预期结果:
编译正常, 组件正常
编译正常, 组件正常
实际结果:
编译失败
编译失败
bug描述:
在封装公共页面处理逻辑的时候, 发现页面如果不是直接导出对象就会导致编译报错, 报错如下
ERROR Failed to compile with 1 errors 14:23:14
error in ./src/pages/test.vue?vue&type=script&lang=js&
Module build failed (from ./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js):
TypeError: Cannot read property 'filter' of undefined
at handleObjectExpression (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@dcloudio\webpack-uni-mp-loader\lib\babel\scoped-component-traverse.js:26:53)
at ExportDefaultDeclaration (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@dcloudio\webpack-uni-mp-loader\lib\babel\scoped-component-traverse.js:90:11)
at NodePath._call (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\path\context.js:55:20)
at NodePath.call (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\path\context.js:42:17)
at NodePath.visit (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\path\context.js:90:31)
at TraversalContext.visitQueue (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\context.js:112:16)
at TraversalContext.visitMultiple (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\context.js:79:17)
at TraversalContext.visit (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\context.js:138:19)
at Function.traverse.node (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\index.js:84:17)
at NodePath.visit (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\path\context.js:97:18)
at TraversalContext.visitQueue (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\context.js:112:16)
at TraversalContext.visitSingle (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\context.js:84:19)
at TraversalContext.visit (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\context.js:140:19)
at Function.traverse.node (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\index.js:84:17)
at traverse (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@babel\traverse\lib\index.js:66:12)
at module.exports (D:\Projects\saas-fe-xapp-ec-channel\multiple-uni\node_modules\@dcloudio\webpack-uni-mp-loader\lib\babel\scoped-component-traverse.js:54:3)
@ ./src/pages/test.vue?vue&type=script&lang=js& 1:0-434 1:450-453 1:455-886 1:455-886
@ ./src/pages/test.vue
代码如下
import Vue from "vue";
import testC from "../components/test-c.vue";
import { basePage } from "../common/basePage/basePage";
const a = {
components: {
testC
},
data() {
return {};
},
methods: {}
};
export default Vue.extend(a);
甚至这样也不行
import Vue from "vue";
import testC from "../components/test-c.vue";
import { basePage } from "../common/basePage/basePage";
const a = {
components: {
testC
},
data() {
return {};
},
methods: {}
};
export default a;
只有下面这样直接导出对象,或者Vue.extend({...})才可以
import Vue from "vue";
import testC from "../components/test-c.vue";
import { basePage } from "../common/basePage/basePage";
export default Vue.extend( {
components: {
testC
},
data() {
return {};
},
methods: {}
});
9***@qq.com - 天堂里的花大咩
其他uni-app都能优化,components部分它优化不了,这个是要静态编译成usingComponents的,字面量的描述components即可,拉出来描述
import Vue from "vue";
import testC from "../components/test-c.vue";
import { basePage } from "../common/basePage/basePage";
export default Vue.extend({
...basePage({
data() {
return {};
},
methods: {}
}),
components: {
testC
},
});
朱凯 (作者)
有修复的时间吗, 这边项目等待上线, 比较急
2020-07-09 10:26