javascript - Vue.js 延迟加载

标签 javascript laravel vue.js laravel-mix

我正在使用 Laravel mix 来编译我的 vue.js 组件。现在我想延迟加载我在这里找到的组件:

https://v2.vuejs.org/v2/guide/components.html#Async-Components

当我尝试这个时:

Vue.component('setting', () => import('./components/settings/setting.vue'));

我得到:

 error  in ./resources/assets/admin/vue/core.js

Syntax Error: Unexpected token (36:31)

  34 |  */
  35 |
> 36 | Vue.component('setting', () => import('./components/settings/setting.vue'));
     |                                ^

这里可能出了什么问题?当我注册组件“正常”时,一切正常吗?

最佳答案

根据评论。您需要指定 publicPath。 这是在 laravel 5.5 上使用 laravel-mix 测试的工作 webpack.mix.js 文件的小版本

const { mix } = require('laravel-mix');
mix.setPublicPath('public/');



mix.webpackConfig({
    output: {
      chunkFilename: 'js/[name].[chunkhash].js',
         publicPath: '/'
     },
    module: {
        rules: [{
            test: /\.js?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            options: {
              presets: ['babel-preset-env'],
              plugins:['babel-plugin-dynamic-import-webpack']
            }
        },

  ]
    }
});


mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css')
.version();

您的 manifest.json 可能生成了错误的路径,因此 webpack 无法找到正确的 block 文件路径。因此,您的解决方案是修改路径或仅使用默认路径,如上面的示例所示。 上面的代码应该在 public/js 中生成 app.js 以及分块文件。它还会在公共(public)目录中生成manifest.json 现在最后只需在 Blade 中引用您的 app.js 文件

<script src="{{mix('/js/app.js')}}"></script>

请注意,您需要先安装 babel loader 和 babel 动态导入插件才能在 webpack 中使用 babel 插件,因为我不确定 laravel mix 是否读取 .babelrc 文件以及如果读取的话应该够了

关于javascript - Vue.js 延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47303385/

相关文章:

javascript - 在android中解压phonegap 2.3或更高版本的插件?

javascript - 使用 webpack 将所有部分放在一起

javascript - 如何让我的表格正确显示分组数据?

javascript - 在 Laravel 中发布到数组错误

laravel - Select : Laravel 5. 3 中的验证问题

javascript - 设置 vuetify 扩展面板组件的 max-width

javascript - 如何从Cs页面打印值列表到表示层(Aspx)

javascript - 悬停文本时的 jQuery 工具提示

javascript - redux中间件函数级联应该这么复杂吗?

php - 更新 Created_at 时间戳 Laravel 数据库播种