2017-04-09 2 views
1

Im Versuch, die Einrichtung Arbeiter-Lader mit vue-cli webpack Installation, die die folgende Dateistruktur für build/Konfiguration bietet:Verwenden Arbeiter-Lader mit vue-cli und webpack

-build 
--vue-loader.conf.js 
--webpack.base.conf.js 
--other build files... 
-config 
--index.js 
--dev.env.js 
--other config files... 

ich dann installiert Arbeiter-loader mit

npm install worker-loader --save-dev 

So dann habe ich versucht, meine worker.js mit

require('worker-loader!my-worker.js'); 

Aber es ist nicht erforderlich geladen von babel, die für vue-cli webpack Version als Standard verwendet wird

So dann habe ich versucht Update webpack.base.conf.js mit folgenden Konfiguration:

module: { 
rules: [ 
    { 
    test: /\.(js|vue)$/, 
    loader: 'eslint-loader', 
    enforce: 'pre', 
    include: [resolve('src'), resolve('test')], 
    options: { 
     formatter: require('eslint-friendly-formatter') 
    } 
    }, 
    { 
    test: /\.vue$/, 
    loader: 'vue-loader', 
    options: vueLoaderConfig 
    }, 
    { 
    test: /\.js$/, 
    loader: 'babel-loader', 
    include: [resolve('src'), resolve('test')] 
    }, 
    { 
    test: /\worker\.js$/, 
    loader: 'worker-loader', 
    include: [resolve('src'), resolve('test')] 
    }, 
    { 
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 
    loader: 'url-loader', 
    options: { 
     limit: 10000, 
     name: utils.assetsPath('img/[name].[hash:7].[ext]') 
    } 
    }, 
    { 
    test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 
    loader: 'url-loader', 
    options: { 
     limit: 10000, 
     name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 
    } 
    } 
] 
} 

Aber meine Arbeiter nur gelesen wird dann durch Babel und importiert als eine normale js-Datei, und der Worker-Loader tut nichts zu tun.

Also, wie Sie das richtig konfigurieren?

Antwort

0

Woops, ich habe meinen Fehler gefunden.

Ich habe versucht, Arbeiter-Lader mit laden:

import myWorker from 'worker-loader?./myworker' 
let worker = new Worker(myWorker); 

So war die Lösung einfach zu bedienen:

import myWorker from 'worker-loader?./myworker' 
let worker = new myWorker; 

So, jetzt funktioniert es :-)

+0

Sind Sie sicher, dass es 'worker-loader? ./ myworker' und nicht 'worker-loader! ./ myworker'? Könnten Sie bitte die Struktur Ihrer Worker-Datei posten? – Alex

+0

Es kann direkt ohne conf nach npm verwendet werden, um worker-loader zu installieren. Ex. 'import NoxferWorker von 'worker-loader? name = worker/[hash: 7] .worker.js! ./ noxfer.worker'' – Steffan

Verwandte Themen