You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Laravel 8与Vue开发时遭遇Webpack编译错误的技术求助

解决Laravel 8 + Vue Webpack编译错误(Module parse failed: Unexpected token)

看起来你遇到的问题是Webpack没法正确解析Vue单文件组件(.vue),结合错误信息和你的代码,我整理了两个关键修复点:

1. 移除Vue文件里的无效字符

你的role.vue文件开头有个多余的>符号(错误信息里第一行就是这个),这会直接导致解析失败。把这个多余的字符删掉,同时补充上Vue单文件组件必需的<template>块,标准结构如下:

<template>
  <!-- 这里放你的HTML模板内容,比如展示权限的列表 -->
  <div>
    <ul v-for="permission in permissions" :key="permission.id">
      <li>{{ permission.name }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return { permissions: [] }
  },
  methods: {
    getPermissions() {
      axios
        .get("http://localhost:8000/getAllPermisison")
        .then((response) => {
          this.permissions = response.data.permissions;
        })
        .catch(() => {
          swal.fire({
            icon: "error",
            title: "Oops...",
            text: "Something went wrong!",
          });
        });
    }
  },
  created(){
    this.getPermissions();
  }
}
</script>

2. 确保Laravel Mix正确配置Vue支持

Laravel 8搭配的Mix 6默认不会自动启用Vue编译,你需要手动配置:

步骤1:安装必要依赖

根据你使用的Vue版本安装对应包:

  • 若使用Vue 2:
npm install vue vue-loader vue-template-compiler --save-dev
  • 若使用Vue 3:
npm install vue@next vue-loader@next @vue/compiler-sfc --save-dev

另外,你的代码用到了axios和sweetalert2,未安装的话也需要补上:

npm install axios sweetalert2 --save

步骤2:修改webpack.mix.js

确保配置里调用了.vue()方法来启用Vue组件编译:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .vue() // 这一行是关键,开启Vue单文件组件编译支持
   .sass('resources/sass/app.scss', 'public/css');

步骤3:重新运行编译命令

先删除缓存再重新编译,避免旧缓存干扰:

rm -rf node_modules/.cache
npm run dev

最后可以检查下resources/js/app.js里是否正确引入并注册了Vue组件,比如Vue 2的写法:

import Vue from 'vue';

Vue.component('role-component', require('./components/role.vue').default);

new Vue({
    el: '#app'
});

内容的提问来源于stack exchange,提问作者salman khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 04:48:14