Webpack 编译错误:TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a function

Posted

技术标签:

【中文标题】Webpack 编译错误:TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a function【英文标题】:Webpack compile error: 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 什么的。 【参考方案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 定义它即可。

【讨论】:

以上是关于Webpack 编译错误:TypeError: __WEBPACK_IMPORTED_MODULE_1__ … is not a function的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: (0 , _material_ui_core__WEBPACK_IMPORTED_MODULE_3__.makeStyles) 不是函数

小程序错误TypeError: __webpack_require__

为啥在导入套接字时会出现此错误:“TypeError: _websocket_js__WEBPACK_IMPORTED_MODULE_0__.default.send is not a functio

Webpack - TypeError:$ 不是函数

TypeError: axios__WEBPACK_IMPORTED_MODULE_1___default.a.get(...).than 不是函数

类型错误:react__WEBPACK_IMPORTED_MODULE_0___default(...) 不是函数