72

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

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 来安装或由 yarn 来找出依赖关系
  • 删除其他非必要的包(vue-router、vue-truncate-filter、vuejs-datepicker)并再次尝试以上所有
  • 把我的头撞在墙上
4

19 回答 19

52

这对我有用:

  1. 修改package.json

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

  3. npm install
于 2017-04-13T17:19:35.997 回答
28

对于^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 install

Npm 将只更新更新的包。

于 2018-08-17T03:04:39.033 回答
21

不需要删除所有node_modules文件夹。只需更新 packages: vuevue-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,但可以更新

于 2018-10-24T14:46:43.167 回答
10

运行以下命令对我有帮助

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

注意。将版本号替换为您需要的正确版本。就我而言,vue 的版本是2.5.16,vue-template-compiler 是 2.5.13,因此我将 vue-template-compiler 更新为 vue 的版本。

希望这可以帮助某人

Vue 包版本不匹配错误修复

于 2018-05-17T06:00:55.200 回答
8

这些步骤帮助了我:

rm package-lock.json, rm -rf node_modules, npm update, npm install
于 2020-09-07T12:26:07.120 回答
7

我运行以下命令: yarn global upgrade

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

于 2020-01-12T18:42:54.023 回答
7

更新 Vue 是我的解决方案。

npm i vue@latest --save

想提一下,之前我做了Kamil' Ocean answer 中描述的步骤:

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

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

一旦更新了 Vue,它就可以工作了。

于 2019-12-16T11:49:00.977 回答
6

在这里,vue 模板编译器编译 vue 模板。如果你使用 vue 一个版本而 vue-template-compiler 另一个版本,那就有问题了。

运行此命令

npm update vue-template-compiler

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

于 2018-01-21T15:03:05.620 回答
5

检查依赖关系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再次运行。

于 2017-11-10T08:36:19.007 回答
5

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

  1. 修改 package.json: "vue": "^2.6.12" 为 "vue": "2.6.12"
  2. 删除文件夹 node_modules
  3. 删除 package-lock.json
  4. 运行 npm 安装
于 2020-12-02T11:08:05.543 回答
3

尝试这个 :npm install vue-template-compiler@2.0.8 --save-dev

将版本转换为与vue-template-compiler版本相同的vue版本(对于这种情况2.0.8)对我有用。试试看。

于 2019-01-16T10:18:44.960 回答
3

从接受的答案中,您可以直接升级这两个包,而不是删除node_modules文件夹并再次运行:yarn install

yarn upgrade vue@^2.0.8
yarn upgrade vue-template-compiler@^2.1.8
于 2018-11-29T06:38:10.057 回答
2

这对我有用:

  1. 修改 package.json: "vue": "^2.5.2" 为 "vue": "2.5.*"
  2. 删除文件夹 node_modules
  3. 删除 package-lock.json
  4. 运行 npm 安装
于 2017-11-23T16:41:13.583 回答
2

我用过npm install vue --save,这对我有用

于 2019-03-26T17:03:58.340 回答
2

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

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

npm install

在这种情况下没有删除或其他任何内容。

于 2020-02-21T16:53:30.307 回答
1

如错误消息中所示:

这可能会导致工作不正常。确保两者使用相同的版本。如果您使用的是vue-loader@>=10.0,只需更新 vue-template-compiler。如果您使用的是 vue- loader@<10.0或 vueify,重新安装 vue-loader/vueify应该会使 vue-template-compiler 更新到最新版本。

我使用的是更高的 vue-loader 所以我运行了命令

npm update vue-template-compiler

这就像魅力一样

于 2021-09-29T14:37:23.870 回答
0

您不需要删除 node_modules 文件夹。

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

使用较低版本号更新软件包。在这种情况下,npm update vuenpm update vue-loader或者,您可能也想要

于 2018-09-02T18:12:01.737 回答
0

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

npm ci

可以在此处找到有关此命令的更详细文档。

于 2020-09-17T11:20:13.630 回答
-1

[解决了!!]

我去了抱怨的 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 的路径和版本是针对我的情况的。

于 2020-01-07T18:23:23.560 回答