Javascript 类对象不是构造函数

Javascript 类对象不是构造函数,javascript,node.js,vue.js,npm,Javascript,Node.js,Vue.js,Npm,我创建了自己的Vue.js npm库来帮助我完成个人项目。除了尝试导入类 我对类的定义如下: import Vue from 'vue' export default class Foo { constructor () { ... } } my npm packages.json: "main": "./dist/my-custom-lib.common.js", "scripts": { "serve": "vue-cli-service serve", "bui

我创建了自己的Vue.js npm库来帮助我完成个人项目。除了尝试导入

我对类的定义如下:

import Vue from 'vue'

export default class Foo {
  constructor () {
    ...
  }
}
my npm packages.json:

"main": "./dist/my-custom-lib.common.js",
"scripts": {
  "serve": "vue-cli-service serve",
  "build": "vue-cli-service build",
  "build-bundle": "vue-cli-service build --target lib --name my-custom-lib ./index.js",
  "test:unit": "vue-cli-service test:unit"
},
"files": [
  "dist/my-custom-lib.common.js",
  "src/components/*",
  "src/controllers/*",
  "src/mixins/*",
  "src/utilities/*"
],
要发布,我执行
纱线构建捆绑
,然后执行
npm发布

当我尝试从其他项目导入时:

import { Foo } from '@username/my-custom-lib'
我得到以下错误:

global-plugin.js?3d38:9 Uncaught TypeError: _username_my_custom_lib__WEBPACK_IMPORTED_MODULE_2__.Foo is not a constructor
我可以使用所有其他函数/mixin/vue组件,但不能使用这个类

编辑:以下是
common.js
文件的部分内容:

var foo_Foo =
/*#__PURE__*/
function () {
  function Foo(router) {
    _classCallCheck(this, Foo);
  }

  _createClass(Foo, [{
    ...source contents...
  }]);

  return Foo;
}();

/* concated harmony reexport foo */__webpack_require__.d(__webpack_exports__, "foo", function() { return foo_Foo; });
index.js
作为
纱线构建捆绑包的一部分调用,它包含以下内容:

import * as components from '@/components'

const VueComponents = {
  install (Vue) {
    for (const plugin in components) {
      Vue.component(plugin, components[plugin])
    }
  }
}

export * from '@/mixins'
export * from '@/utilities'
export * from '@/controllers'

export default VueComponents
内部
@/controllers/index.js

import foo from './foo'

export {
  foo
}

您的类是默认导出,因此您希望
从“@username/my custom lib”导入Foo
(无大括号)这不是默认值。只是该文件的默认值,但我正在导出许多文件。在不使用大括号的情况下使用时,我会出现以下错误:
\u用户名\u我的\自定义\库\网页包\导入的\模块\ 2 \默认值。a不是构造函数
“它不是默认值”我添加了一个编辑,以显示
common.js
Foo
类和
index.js
内容相关的内容,这些内容在
warn build bundle
中使用。Foo类位于
/controllers
中,因此您将
Foo
导出为
Foo
。看到问题了吗?您的类是默认的导出,所以您希望
从“@username/my custom lib”导入Foo
(没有大括号)。这不是默认值。只是该文件的默认值,但我正在导出许多文件。在不使用大括号的情况下使用时,我会出现以下错误:
\u用户名\u我的\自定义\库\网页包\导入的\模块\ 2 \默认值。a不是构造函数
“它不是默认值”我添加了一个编辑,以显示
common.js
Foo
类和
index.js
内容相关的内容,这些内容在
warn build bundle
中使用。Foo类位于
/controllers
中,因此您将
Foo
导出为
Foo
。看到问题了吗?