webpack - 将 webpack 从版本 3 升级到 4 后,出现“[vue-router] 路径导航期间未捕获的错误”
问题描述
将 webpack 从版本 3 升级到 4 和第三方包后,我收到此错误:
[vue-router] 无法解析异步组件默认值:TypeError:无法读取未定义的属性“调用”
[vue-router] 路由导航期间未捕获的错误:TypeError: Cannot read property 'call' of undefined at webpack_require (bootstrap:63)
Webpack.js
const ENV = process.env.NODE_ENV || 'production';
const path = require('path');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const conf = {
entry: {
'catalog/bonus': './app/Admin/assets/catalog/bonus/index.js'
},
output: {
filename: '[name].js',
path: `${__dirname}/public/assets/admin`,
publicPath: '/assets/admin/',
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@src': path.resolve(__dirname)
},
extensions: ['*', '.js', '.vue', '.json'],
},
plugins: [
new VueLoaderPlugin(),
],
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
},
],
},
};
if (ENV === 'development') {
conf.devtool = 'source-map';
}
module.exports = conf;
使用vue路由器的例子
import VueRouter from 'vue-router';
export default new VueRouter({
routes: [
{path: '/', name: 'main', component: () => import('./components/BonusList')},
{path: '/create', name: 'create', component: () => import('./components/BonusEdit')},
]
});
解决方案
根据文档,VueRouter 中的组件似乎不是函数,因此不可调用。进口似乎也不起作用,因为它们返回undefined
。
您是否尝试过以下操作?
import VueRouter from 'vue-router';
import BonusList from './components/BonusList';
import BonusEdit from './components/BonusEdit';
export default new VueRouter({
routes: [
{path: '/', name: 'main', component: BonusList},
{path: '/create', name: 'create', component: BonusEdit},
]
});
推荐阅读
- javascript - 已使用推荐的 protractor.conf.js 进行了修改,但仍然无法绕过基本身份验证器
- javascript - 材质UI头像添加海拔
- vba - 从表格路径和一份报告中通过电子邮件发送多张图像 .pdf
- r - R用添加的符号连接列
- angular - 打开垫子对话框时禁用背景滚动
- python - 如何自动销毁堆栈中的帧超时并返回到tkinter中的上一帧
- blazor - Blazor:内置 @on{EVENT} 和自定义 EventCallback 之间的区别
- javascript - 使用 vanilla javascript 遇到竞争条件问题
- html - 移动设备上的 HTML 输入类型 =“数字”按钮
- php - array_combine():两个参数应该有相同数量的元素,即使两个数组的长度相同