2017-01-05 1 views
0

laden Ich muss AMD auf 4 Dateien deaktivieren und laden video.js zuerst, bevor Sie die anderen 3 Dateien laden, weil sie davon abhängen. Als ich versuchte, es in webpack.config.js wie so tun:Wie AMD auf 4 Dateien zu deaktivieren und sie in Reihenfolge mit Webpack

const path = require('path') 
const webpack = require('webpack') 

module.exports = { 
    entry: './src/main.js', 
    output: { 
    path: __dirname + '/public', 
    filename: 'bundle.js' 
    }, 
    devServer: { 
    inline: true, 
    contentBase: './src', 
    port: 3333 
    }, 
    plugins: [ 
    new webpack.DefinePlugin({ 
     'process.env': { 
     'NODE_ENV': JSON.stringify('production') 
     } 
    }) 
    ], 
    module: { 
    loaders: [ 
     { 
     test: /\.js$/, 
     exclude: /node_modules|lib/, 
     loader: 'babel', 
     query: { 
      presets: ['es2015', 'react', 'stage-2'], 
      plugins: ['transform-class-properties'] 
     } 
     }, 
     { 
     test: /\.json$/, 
     loader: 'json-loader' 
     }, 
     { 
     test: /[\/\\]lib[\/\\](video|playlist|vpaid|overlay)\.js$/, 
     exclude: /node_modules|src/ 
     loader: 'imports?define=>false' 
     } 
    ] 
    } 
} 

Es ist nicht wirklich funktioniert, weil es video.js nur Lasten (mit behinderter AMD) und ignoriert vollständig die anderen 3-Dateien.

Meine Ordnerstruktur ist in etwa so:

▾ lib/ 
    overlay.js 
    playlist.js 
    video.js 
    vpaid.js 
▸ node_modules/ 
▾ public/ 
    200.html 
    bundle.js 
▾ src/ 
    App.js 
    index.html 
    main.js 
    LICENSE 
    package.json 
    README.md 
    webpack.config.js 

Nun, ich etwas gefunden, das mir einen Schritt zurück nimmt, weil jetzt auch video.js nicht Last:

require('imports?define=>false!../lib/video.js') 
require('imports?define=>false!../lib/playlist.js') 
require('imports?define=>false!../lib/vpaid.js') 
require('imports?define=>false!../lib/overlay.js') 

und stattdessen nur wirft diese Arten von Warnungen:

WARNING in ./~/imports-loader?define=>false!./lib/video.js 
Critical dependencies: 
15:415-422 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results. 
@ ./~/imports-loader?define=>false!./lib/video.js 15:415-422 

WARNING in ./~/imports-loader?define=>false!./lib/playlist.js 
Critical dependencies: 
10:417-424 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results. 
@ ./~/imports-loader?define=>false!./lib/playlist.js 10:417-424 

WARNING in ./~/imports-loader?define=>false!./lib/vpaid.js 
Critical dependencies: 
4:113-120 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results. 
@ ./~/imports-loader?define=>false!./lib/vpaid.js 4:113-120 

WARNING in ./~/imports-loader?define=>false!./lib/overlay.js 
Critical dependencies: 
10:416-423 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results. 
@ ./~/imports-loader?define=>false!./lib/overlay.js 10:416-423 

Also, meine Frage ist, wie kann ich machen diese Arbeit in webpack.config.js, damit ich diese Warnungen nicht bekomme?

+0

Es könnte auch hilfreich sein, uns Ihre Ordnerstruktur und die Art und Weise zu zeigen, wie Sie diese Dateien benötigen .. –

+0

fertig Wie kann ich mein Problem lösen? – codepreneur

Antwort

1

Ich habe das Problem gelöst! Um diese Arbeit zu machen, müssen Sie dies:

{ 
    test: /[\/\\]lib[\/\\](video|playlist|vpaid|overlay)\.js$/, 
    exclude: /node_modules|src/ 
    loader: 'imports?define=>false' 
    } 

und diese

require('script-loader!../lib/video.js') 
require('script-loader!../lib/playlist.js') 
require('script-loader!../lib/vpaid.js') 
require('script-loader!../lib/overlay.js') 

zusammen!

Nun, wenn Sie diesen (anstelle von Skript-loader) verwenden:

require('imports?define=>false!../lib/video.js') 
require('imports?define=>false!../lib/playlist.js') 
require('imports?define=>false!../lib/vpaid.js') 
require('imports?define=>false!../lib/overlay.js') 

Es wird nicht funktionieren! (Sie benötigen sowohl import-loader als auch script-loader im Unisono.

Verwandte Themen