【问题标题】:Webpack compile error: TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a functionWebpack 编译错误:TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a function
【发布时间】:2017-10-12 07:19:32
【问题描述】:

所以,这是我的 Api 服务组件,我正在使用 Axios:

import api from './Api.vue';

export default {
    name: 'app-feed-service',
    methods: {
        getPosts() {
            return api.get('posts/');
        }
    }
}

还有一些提要组件

import AppSinglePost from './../Feed/Post.vue';
import AppFeedService from './../../api/Feed.vue';

export default {
    name: 'app-posts',
    components: {
        AppSinglePost
    },
    data() {
        return {
            posts: []
        }
    },
    created() {
        AppFeedService.getPosts().then((res) => {
            console.log(res);
        });
    }
}

现在是错误:

TypeError: __WEBPACK_IMPORTED_MODULE_1__api_Feed_vue___default.a.getPosts is not a function

有人可以帮忙吗?

【问题讨论】:

  • 您的提要服务名为Feed.vue?
  • 不,为什么?应该吗?
  • 这就是您要导入的内容。 import AppFeedService from './../../api/Feed.vue'
  • 是的。抱歉误会了
  • 我猜你想导入 Feed.js 什么的。

标签: javascript file-upload webpack vue.js vue-loader


【解决方案1】:

我得到了完全相同的错误 Webpack 编译错误:TypeError: WEBPACK_IMPORTED_MODULE_1 … is not a function 在 ReactJS 中。 当您从任何其他文件导入任何已定义的变量/组件作为组件时,通常会遇到这种类型的错误。在反应中,我们将组件导入为

import ComponentName from '/componentPath';

因此,如果它不是我们要导入的组件,请尝试将导入作为一个对象

import { componentName } from '/componentPath';

{ } 是对象的铭牌。

【讨论】:

    【解决方案2】:

    Feed.vue 中定义的 AppFeedService 看起来并不是真正的组件,它只是您要调用的服务的集合。由于您已将其定义为组件,因此该组件必须在某处实例化,这在大多数情况下意味着您在另一个组件的template 中使用了它。

    您可以将其定义为一个对象。

    import api from './Api.js';
    
    export default {    
        getPosts() {
            return api.get('posts/');
        }
    }
    

    您的 Api.vue 文件可能也是如此。定义实际组件时,只需要使用.vue 文件即可。

    然后在您的提要组件中

    import AppFeedService from './../../api/Feed.js';
    

    总结一下:.vue 文件格式用于定义单个文件组件。当您实际定义单个文件组件(可能会在不同组件的template 中使用的东西)时,您只需要一个.vue 文件。如果您只想要一个包含方法集合或某种状态的对象,只需使用纯 javascript 定义它即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2021-08-20
      • 2019-07-20
      • 2021-08-01
      • 2018-10-28
      相关资源
      最近更新 更多