2017-11-15 13 views
0

Vue.js遅延ロード

https://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')); 
    |        ^

ここで間違っている可能性は何?今、私は私のコンポーネントは、ここでそれを見つけた遅延ロードしたいと思いますかコンポーネントを登録すると、「正常」なものがすべて動作していますか?コメントから次の

+0

十分にあるべきなのWebPACKにバベルのプラグインを使用できるようにするために必要なあなたが(HTTPS [ダイナミックインポート]を使用しています:// githubの。 COM/airbnb /バベル - プラグインダイナミック輸入のWebPACK) – zeidanbm

+0

ありません私は – Jenssen

+0

Laravelミックスは、シーンの背後に、コード分割featuのためのWebPACKを使用していることを使用していませんダイナミックインポートを使用する必要があります。これは、私はそれが今取り組んで持っている[WebPACKの](https://webpack.js.org/guides/code-splitting/#dynamic-imports) – zeidanbm

答えて

2

。 publicPathを指定する必要があります。 は、ここでは、おそらくあなたのmanifest.jsonを、間違ったパスを生成するため、WebPACKのは見つけることができないされていたlaravelミックスとlaravel 5.5上でテスト作業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(); 

の小型版です正しいチャンクファイルパス。だからあなたの解決策は、パスを変更するか、上の例のようにデフォルトのパスを使うだけです。 上記のコードは、パブリック/ JSのと同様に、チャンクファイル内のapp.jsを生成する必要があります。また、それは最終的にちょうどあなたのブレードに

<script src="{{mix('/js/app.js')}}"></script>をごapp.jsファイルを参照

今すぐ公開ディレクトリにあなたはバベルローダーとバベルダイナミックインポートプラグインは最初はインストールされている必要があり注意を をmanifest.jsonをを生成します私はlaravelミックスが.babelrcファイルを読み込むかどうかわからないんだけど、それがないならば、それは

+0

これは正しい場所にコンパイルされています。しかし、自分のネットワークタブを調べると、間違った経路を探しています。どのように設定する必要がありますか? – Jenssen

+0

あなたのブレードで指定されたパスを参照していると思いますか? webpack、ハッシュされたjsファイルを使って制作していますか? – zeidanbm

+0

私はブレードファイルでどのように参照する必要がありますか? – Jenssen