Reputation: 1146
I'm trying to compile webpack with the command:
node_modules/.bin/webpack
and i get the error:
Module parse failed:
/home/vagrant/Code/stream/resources/assets/js/views/Contact.vue
Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
webpack show the error in each file with extension .vue
my routes looks like this
import VueRouter from 'vue-router';
let routes = [
{
path: '/',
component: require('./views/Home')
},
{
path: '/about',
component: require('./views/Test')
},
{
path: '/contact',
component: require('./views/Contact')
}
];
export default new VueRouter({
routes,
linkActiveClass: 'is-active'
});
Upvotes: 13
Views: 39642
Reputation: 66
Make sure you don't use keywords like "package" or others. This gave me the same error when using the PUG preprocessor, but at first I didn't know I was using the keyword. I replaced it with "item": v-for="package in packages" --> v-for="item in packages".
.table__wrapper
.table__row(v-for="package in packages" :key="package.objectID")
.table__row-name {{ package.name }}
Upvotes: 1
Reputation: 7677
In my case I had forgotten to add:
const { VueLoaderPlugin } = require('vue-loader')
...
plugins: [
...
new VueLoaderPlugin(),
],
To the webpack configuration.
Upvotes: 2
Reputation: 1256
I just recently solved this by reverting to vue-loader v14
npm install vue-loader@14 --save-dev
.
Apparently v15 has some issues.
Upvotes: 6
Reputation: 3131
I got a similar error, and was confused because I did have vue-loader and other vue components were working. In my case I had forgotten to specify the script language as TypeScript. See lang="ts" in this example:
<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'
import { Prop } from 'vue-property-decorator'
@Component({ name: 'readonlyrating' })
export default class ReadOnlyRating extends Vue {
...
}
</script>
Upvotes: 3
Reputation: 44959
As the error message implies:
You may need an appropriate loader to handle this file type.
You need to add vue-loader to your webpack configuration.
You can find an example of such an integration here:
https://github.com/vuejs-templates/webpack-simple
Upvotes: 7