如何修复" Vue软件包版本不匹配" Laravel Spark v4.0.9上的错误?

时间:2017-04-13 16:47:09

标签: vue.js vuejs2 laravel-spark

当我在Laravel Spark v4.0.9应用程序上运行npm run dev时,出现以下错误:

Module build failed: Error:

Vue packages version mismatch:

- vue@2.0.8
- vue-template-compiler@2.2.6

This may cause things to work incorrectly. Make sure to use the same version for both.
If you are using vue-loader@>=10.0, simply update vue-template-compiler.
If you are using vue-loader@<10.0 or vueify, re-installing vue-loader/vueify should bump vue-template-compiler to the latest.

我的package.json看起来像这样:

{
  "private": true,
  "scripts": {
    "dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "dependencies": {
    "axios": "^0.15.2",
    "bootstrap": "^3.0.0",
    "cross-env": "^3.2.3",
    "jquery": "^2.1.4",
    "js-cookie": "^2.1.0",
    "laravel-mix": "0.*",
    "moment": "^2.10.6",
    "promise": "^7.1.1",
    "sweetalert": "^1.1.3",
    "underscore": "^1.8.3",
    "urijs": "^1.17.0",
    "vue": "~2.0.1",
    "vue-resource": "^1.2.0",
    "vue-router": "^2.2.1",
    "vue-truncate-filter": "^1.1.6",
    "vuejs-datepicker": "^0.6.2"
  },
  "devDependencies": {
    "browser-sync": "^2.18.8",
    "browser-sync-webpack-plugin": "^1.1.4"
  }
}

我尝试了以下(在不同时间,而不是按顺序):

  • 已删除node_modulesnpm install
  • 尝试运行yarnyarn upgrade
  • 删除vue-loader并重新安装
  • 指定vue和vue-template-compiler的确切版本,而不是将它留给npm安装或者纱线以确定依赖关系
  • 删除其他非必要的软件包(vue-router,vue-truncate-filter,vuejs-datepicker)并再次尝试以上所有内容
  • 把头撞在墙上

18 个答案:

答案 0 :(得分:17)

用于^2.5.17

在您的package.json

只需在devDependencies中添加它或更新vue-template-compiler的版本:

  • "vue-template-compiler": "^2.5.17"

您将获得以下输出:

"devDependencies": {
  ...
  "lodash": "^4.17.4",
  "popper.js": "^1.14.4",
  "vue": "^2.5.17", // <= note the version
  "vue-template-compiler": "^2.5.17" // <= note the version
},

然后,运行:

  • npm安装

Npm将仅更新更新的软件包。

答案 1 :(得分:14)

这对我有用:

  1. 修改package.json

    “vue”: “^2.0.8",
    “vue-template-compiler”: “^2.1.8"
    
  2. 删除node_modules

  3. 运行npm install

答案 2 :(得分:7)

我运行以下命令: yarn global upgrade

那将升级任何需要升级的关系

答案 3 :(得分:6)

运行以下命令帮助我

npm install vue-template-compiler@2.5.16 --save-dev

NB。用您需要的正确版本替换版本号。在我的例子中,vue的版本是 2.5.16并且vue-template-compiler是2.5.13 因此我将vue-template-compiler更新为vue的版本。

希望这有助于某人

Vue packages version mismatch error fix

答案 4 :(得分:5)

不需要删除所有node_modules文件夹。只需通过vue标志更新vue-template-compilervue-server-renderer@latest软件包,它就可以在vue软件包版本不匹配的情况下提供帮助。

npm i vue-template-compiler@latest --save

npm i vue-server-renderer@latest --save

--save将自动更新package.json文件中的版本。 @latest表示安装软件包的最新可用版本。如果您需要更新vue,请按照与上述示例相同的方式进行。

此外,您始终可以通过命令npm outdated检查新版本的更新。它显示了所有应该更新的软件包列表。

顺便说一句,npm update命令仅更新次要补丁版本,但是在您要更新主要时不起作用。版。例如,npm update不会更新2.4.5 => 3.0.1,但是可以更新

答案 5 :(得分:3)

检查vue的依赖关系,并替换为vue-template-compiler的完全依赖关系。

例如。

"dependencies": {
    "vue": "^2.5.2",
},
"devDependencies": {
    "vue-template-compiler": "^2.5.3",
},

应替换为:

"dependencies": {
    "vue": "2.5.2",
},
"devDependencies": {
    "vue-template-compiler": "2.5.2",
},

再次运行npm install

答案 6 :(得分:3)

以下步骤对我有帮助:

const Discord = require('discord.js');
const { prefix } = require('../config.json');

module.exports = {
    name: 'coloradd',
    description: 'Give You Your Color',
    execute(message, args, client) {
        if (!message.content.startsWith(prefix) || message.author.bot) return;
        const colors = message.guild.roles.cache.filter(c => c.name.startsWith('#'))
        let str = args.join(' ')
        let role = colors.find(role => role.name.slice(1).toLowerCase() === str.toLowerCase());
        if (!role) {
            return message.channel.send('That color doens\'t exist')
        } try {
            const member = message.member; // Use `message.member` instead to get the `guldMember` property.
            // `addRoles()` and `removeRoles()` are deprecated.
            member.roles.remove(colors);
            member.roles.add(role);
            message.channel.send('Your Have Received Your Color !')
        } catch (e) {
            let embed = new Discord.MessageEmbed()
                .setTitle('Error')
                .setColor('RED')
                .setDescription('There is an error with the role Hierarchy Or my permissions. Make Sure I am above the color roles')
            return (embed)
        }
    }
}

答案 7 :(得分:3)

这里,vue模板编译器编译vue模板。如果您使用vue one version和vue-template-compiler另一个版本,那就是一个问题。

运行此命令

npm update vue-template-compiler

这将解决问题,它将安装vue模板编译器,与vue js版本相同。

答案 8 :(得分:2)

尝试一下:npm install vue-template-compiler@2.0.8 --save-dev

vue-template-compiler版本转换为与vue版本相同(在这种情况下为2.0.8)对我来说很有效。试试看。

答案 9 :(得分:2)

我只需要使这两个版本匹配(通过更改编译器值与package.json中的“ vue”值匹配并运行npm install:

"vue": "^2.6.11",
"vue-template-compiler": "^2.6.11"

npm install

在这种情况下,请勿删除或进行任何其他操作。

答案 10 :(得分:1)

从接受的答案中,您无需直接删除 node_modules 文件夹并再次运行yarn install,只需直接升级这两个软件包即可:

yarn upgrade vue@^2.0.8
yarn upgrade vue-template-compiler@^2.1.8

答案 11 :(得分:1)

您不需要删除node_modules文件夹。

- vue@2.0.8 - vue-template-compiler@2.2.6

使用较低的版本号更新软件包。在这种情况下,npm update vue。 (可选)您可能也想npm update vue-loader

答案 12 :(得分:1)

这对我有用:

  1. 修改package.json: &#34; vue&#34;:&#34; ^ 2.5.2&#34;到&#34; vue&#34;:&#34; 2.5。*&#34;
  2. 删除文件夹node_modules
  3. 删除package-lock.json
  4. 运行npm install

答案 13 :(得分:0)

我使用了npm install vue --save,它对我有用

答案 14 :(得分:0)

更新Vue是我的解决方案。

npm i vue@latest --save

想提一下,我之前做的是Kamil' Ocean答案中所述的步骤:

npm i vue-template-compiler@latest --save

npm i vue-server-renderer@latest --save

一旦更新了Vue,它就会起作用。

答案 15 :(得分:0)

[已解决!]

我转到了抱怨的vue-template-compiler的同一package.json文件,在那里更改了软件包的版本并运行yarn,就像这样:

_〜/ .config / yarn / global / node_modules / vue-jscodeshift-adapter / node_modules / vue-template-compiler / package.json _:

OLD:
  "name": "vue-template-compiler",
  "version": "2.6.11"
NEW:
  "name": "vue-template-compiler",
  "version": "2.6.10"

运行:

yarn

来源: https://github.com/vuejs/vue/issues/10932

注意:package.json和版本的路径特定于我的情况。

答案 16 :(得分:0)

全新安装有助于使用以下命令:

npm ci

有关此命令的更多详细文档,请参见here

答案 17 :(得分:0)

这对我和您的100%都有效:

  1. 将package.json:“ vue”:“ ^ 2.6.12”修改为“ vue”:“ 2.6.12”
  2. 删除文件夹node_modules
  3. 删除package-lock.json
  4. 运行npm install