【问题标题】:Vue is not a constructorVue 不是构造函数
【发布时间】:2017-07-09 16:27:56
【问题描述】:

我使用webpack,在chrome中构建并运行后显示此错误,我不知道如何解决。

我的代码很简单:

{
  "devDependencies": {
    "babel-core": "^6.23.1",
    "babel-loader": "^6.3.2",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.22.0",
    "babel-runtime": "5",
    "css-loader": "^0.26.1",
    "html-webpack-plugin": "^2.28.0",
    "vue-hot-reload-api": "^2.0.9",
    "vue-html-loader": "^1.2.3",
    "vue-loader": "10.0.3",
    "vue-style-loader": "^2.0.0",
    "vue-template-compiler": "^2.1.10",
    "webpack": "^2.2.1",
    "webpack-dev-server": "^2.4.1"
  },
  "dependencies": {
    "vue": "^2.1.10"
  }
}

【问题讨论】:

  • 尝试像这样导入vue import Vue from 'vue'
  • 查看本教程以了解没有 vue-cli 的 Vue v3 设置:frontendguruji.com/blog/…

标签: webpack vuejs2 vue.js webpack-2


【解决方案1】:

您只需要导入运行时构建。 This comment in the Github issues 解释。

把这个放在你的webpack.config.js

resolve: {
  alias: {
    vue: 'vue/dist/vue.js'
  }
}

【讨论】:

  • 没有webpack怎么办?我只使用 ts-node 来解析包。
  • @mesqueeb 在开发中使用vue/dist/vue.js,在生产中使用vue/dist/vue.min.js
【解决方案2】:

Vue 是该库的默认导出,因此您可以这样导入。

import Vue from 'vue'

【讨论】:

  • @BelminBedak 谢谢,我原来的代码是import * as Vue from 'vue';,我改了就可以了。
  • 我是这样导入 Vue 的,但还是不行。知道为什么吗?
  • 效果很好,请问为什么它不能像 window.Vue = require('vue');谢谢!
  • @salmanifrahim 到那时,这将取决于您的构建过程,require('vue') 在浏览器中不起作用,并且“应该”编译为支持默认导出和主要导出。如果你添加 require("vue').default 它可能会起作用,但是,你最好的选择是像上面那样依赖 ESM 导入语句。
猜你喜欢
  • 2021-03-07
  • 2021-07-15
  • 2019-09-01
  • 2018-05-01
  • 2021-01-18
  • 2021-03-15
  • 1970-01-01
  • 2013-12-25
  • 2021-01-11
相关资源
最近更新 更多