Laravel 拉拉维尔捷流Vue混合路线

Laravel 拉拉维尔捷流Vue混合路线,laravel,vue.js,webpack,jetstream,Laravel,Vue.js,Webpack,Jetstream,在安装程序使用Jetstream选项resources/js/app.js创建的新Laravel项目中,有一行内容如下: Vue.mixin({methods:{route}) PHPStorm报告route是未解析的变量或类型。如果发生这种情况,PHPStorm可能是错误的。在新创建的应用程序中,这不会导致错误 然而,当我将现有项目升级到Laravel 8.10.0并通过composer安装Jetstream时,确实引起了问题。运行此npm run dev时不会出错,但浏览器将报告app.js

在安装程序使用Jetstream选项
resources/js/app.js
创建的新Laravel项目中,有一行内容如下:
Vue.mixin({methods:{route})

PHPStorm报告
route
是未解析的变量或类型。如果发生这种情况,PHPStorm可能是错误的。在新创建的应用程序中,这不会导致错误

然而,当我将现有项目升级到Laravel 8.10.0并通过composer安装Jetstream时,确实引起了问题。运行此
npm run dev
时不会出错,但浏览器将报告
app.js:44258未捕获引用错误:未定义路由


我在
app.js
bootstrap.js
中找不到导致这种情况的差异。从何处导入或包含此内容,以便我可以检查升级中是否正确执行了此操作?

新创建的应用程序和更新都会创建一个包含
@routes
指令的刀片模板。在比较现有文件时,我没有注意到这种差异


这可以通过在加载主脚本之前在刀片模板中包含
@routes
指令来纠正,如中所述。

根据toothlessresebel的建议,以下是我解决错误的方法:

步骤1命令行:

composer require tightenco/ziggy
npm install ziggy-js
php artisan ziggy:generate "resources/js/ziggy.js"
步骤2:修改webpack.mix.js:

mix.js('resources/js/app.js', 'public/js')
    ...
    .webpackConfig(require('./webpack.config'));
在./webpack.config中:

const path = require('path');
module.exports = {
    resolve: {
        alias: {
            '@': path.resolve('resources/js'),
            ziggy: path.resolve('vendor/tightenco/ziggy/src/js/route.js'),
        },
    },
};
步骤3:app.js:

import route from 'ziggy';
import {
    Ziggy
} from './ziggy';
...
Vue.mixin({
    methods: {
        route: (name, params, absolute) => route(name, params, absolute, Ziggy),
    },
});
...
new Vue({
    el: "#app",
    render: (h) =>
        h(InertiaApp, {
            props: {
                initialPage: JSON.parse(app.dataset.page),
                resolveComponent: (name) => require(`./Pages/${name}`).default,
            },
        }),

});
最后是一个命令:
npm run dev

所以,我的仪表板和所有mixin/Zigy路线都在工作。。。 不再是我的vue路由器路由。。。我想我必须解决一个矛盾,但这是另一个问题