添加类方法时未定义 module.exports

Posted

技术标签:

【中文标题】添加类方法时未定义 module.exports【英文标题】:module.exports is undefined when adding a class method 【发布时间】:2019-06-29 19:36:58 【问题描述】:

我正在尝试设置自定义 Vue 插件和外部类以与 Storybook 一起使用。在我的故事书中config.js 我有:

const addParameters = require('@storybook/vue').addParameters;
const configure = require('@storybook/vue').configure
const Vue = require('vue').default;
const Vuex = require('vuex');
Vue.use(Vuex);
const myClass = require('../myClass.js')

function loadStories()...
addParameters(...)
configure(loadStories, module)

myClass.js

class myClass 
   constructor()
     this.myVar = 6
   

module.exports = myClass

这很好用。

当我添加任何类方法时出现问题,我收到错误Cannot assign to read only property 'exports' of object '#<Object>'

例子

class myClass 
   constructor()
     this.myVar = 6
   
   getVar() return this.myVar 

module.exports = myClass

我读到这个错误可能是由混合importmodule.exports 引起的,但据我所知,我没有这样做。我也很困惑为什么在添加类方法之前我错误。另外,我使用module.exportsrequire 在适当的应用程序的其他地方使用这个类就好了。

我接下来应该研究什么?

【问题讨论】:

你试过export default myClass而不是module.exports = myClass吗? 你有循环依赖(每个模块相互导入)吗? @tony19 export default myClass 有效,但我在适当的应用程序中使用module.exportsrequire(这是在故事书中)。 export default 在正确的应用程序中失败。我目前正在考虑使其不会中断。 【参考方案1】:

试试这些

    module.exports = new myClass

    mixin - 它应该是这样的

    module.exports = () => new class newClass extends myClass constructor() super();

【讨论】:

以上是关于添加类方法时未定义 module.exports的主要内容,如果未能解决你的问题,请参考以下文章

在 Gradle Android 中实现自定义库时未解析类

执行删除规则时未调用自定义对多关系访问器方法

iOS 故事板 - 添加 UINavigationBar 时未出现

添加简码时未定义 WordPress 功能

反向转换时未添加 Jquery 移动 ui-active 类

AS3:在影片剪辑中添加形状时未定义术语