在安装程序使用Jetstream选项创建的新Laravel项目中,resources/js/app.js有一行内容为:Vue.mixin({ methods: { route } });
PHPStorm报告route是一个未解析的变量或类型。如果发生这种情况,PHPStorm可能是错的。在新创建的应用程序中,这不会导致错误。
但是,当我将现有项目升级到Laravel8.10.0并通过composer安装Jetstream时,会导致并发出。运行此npm run dev时不会出错,但浏览器将报告app.js:44258 Uncaught ReferenceError: route is not defined。
我在app.js或bootstrap.js中没有发现会导致这种情况的不同之处。它在哪里被导入或包含,以便我可以检查它是否在我的升级中正确完成?
发布于 2020-10-20 12:39:08
新创建的应用程序和更新都创建了包含@routes指令的Blade模板。在比较现有文件时,我没有注意到这种差异。
这可以通过在加载主脚本之前在刀片模板中包含@routes指令来纠正,如齐格安装指南中所记录的那样。
发布于 2020-10-23 09:33:13
在ToothlessRebel的建议下,我就是这样解决错误的:
步骤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
所以,我的仪表盘和所有混合/齐格路线都在工作.不再是我的路由器了.我想我得解决一场大火,但这是另一个问题
https://stackoverflow.com/questions/64445131
复制相似问题