Problem:
Whilst attempting to upgrade an old Laravel project, I hit the following error.
Module build failed (from ./node_modules/vue-loader/lib/index.js):
Error: [vue-loader] vue-template-compiler must be installed as a peer dependency, or a compatible compiler implementation must be passed via options.
Solution:
After some searching of GitHub and stackoverflow, it turns out that The vue
and vue-template-compiler
module version must be the same. Here was my existing package.json:
{
"private": true,
"scripts": {
"etc..."
},
"devDependencies": {
"vue": "^2.5.17",
"vue-loader": "^15.5.1",
"vue-template-compiler": "^2.5.21"
},
"dependencies": {
"etc..."
}
}
I changed the vue
version to 2.5.21, then ran npm update
to update the base version of VueJS.
Troubleshooting:
To check which version of a module is installed run: npm show [module-name] version
and the version number will be echoed:
$ npm show vue-template-compiler version
2.5.21
To install a specific version of a module, you can run npm install [module-name]@[version] --save-dev
i.e:
$ npm install vue-template-compiler@2.5.21 --save-dev
Any questions?
Please leave a comment with any questions or corrections.
Was this useful, please let me know with one click:
That was easy. Thanks a lot!
In my case I installed vue-template-compiler manually but that still didn’t fix it, then I updated vue (npm install vue) and rebuilt the dependencies (npm rebuild) and then I was finally able to compile.