【问题标题】:use webpack with vue, but require seems not working将 webpack 与 vue 一起使用,但 require 似乎不起作用
【发布时间】:2017-07-31 23:03:06
【问题描述】:

我使用webpack打包js,示例:

var Vue = require('vue')

var app = new Vue({
    el: '#app',
    data: {
        info: { email: '' },
        email: ''
    },

    methods: {

        onSignin: function (e) { },
    }
})

使用 Webpack 生成一个 bundle 并包含在 html 中,出现错误:

test3b.js:7019 Uncaught TypeError: Vue is not a constructor(…)

知道这里缺少什么吗?谢谢,

【问题讨论】:

  • 你是否使用单文件组件?
  • 只是想把Vue放入webpack而不是包含在html中,
  • 回答了您的问题

标签: webpack vue.js


【解决方案1】:
var Vue = require('vue')

是正确的,但它默认拉入运行时版本:

vue/dist/vue.runtime.common.js

这将触发错误并标记为警告, 需要告诉 webpack 拉入另一个版本,

vue/dist/vue.min.js

为此,在 webpack.config.js 中添加以下内容:

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

这是documented here,但不容易找到

【讨论】:

  • 谢谢!将resolve 添加到我的 webpack 配置中解决了我的问题!
  • 它为我解决了这个问题。但我总是必须这样做吗?我的意思是我不应该使用 vue 的运行时版本吗?我是 JS 新手,只是想了解 npm 和 webpack 以及工作人员。所以这里真的很困惑。谢谢
【解决方案2】:

您可以查看vue-hackernews-2.0 项目,该项目提供了使用 webpack 实现 vue 的示例,在他们的 app.js 中,您会发现以下内容:

import Vue from 'vue'

您必须已经在 package.json 中拥有 vue 依赖项,因为它是 here 并且您已通过以下方式安装它:npm install

【讨论】:

  • 我们可以使用 Vue = require('vue') 吗?
  • @AngeloC 理想情况下,我看不出它不应该工作的任何原因,import 语法有效吗?
  • 包有 vue 依赖: "dependencies": { "vee-validate": "^2.0.0-beta.25", "vue": "^2.2.2" }
【解决方案3】:

看看下面的代码。您没有创建新变量,这就是您不能使用的原因:var app = ...。只需调用新的 Vue。

另外,将 require 替换为 ES6 导入 import Vue from 'vue'

import Vue from 'vue'

new Vue({
    el: '#app',
    data: {
        info: { email: '' },
        email: ''
    },

    methods: {

        onSignin: function (e) { },
    }
})

类似于官方的 VueJS Webpack 模板。 https://github.com/vuejs-templates/webpack/blob/master/template/src/main.js

【讨论】:

  • use new Vue,报同样的错误,发现的样本通常使用import而不是require,可能是这个原因?
  • 我在几分钟前编辑了答案,因为我忘记了 import 。编辑待定。另外,将 require 替换为 ES6 import import Vue from 'vue'
  • 把它改成'import ..',我得到一个新错误:test3b.js:636 [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available .要么将模板预编译为渲染函数,要么使用包含编译器的构建。 (在 中找到)
  • 但它现在可以工作了吗?警告不是错误。您确定没有包含 Webpack 和 Vue 本身的输出文件吗?
  • 控制台出错,输出文件中包含Vue源代码
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 2017-12-16
  • 2020-08-10
  • 2020-05-19
  • 2019-01-28
相关资源
最近更新 更多