Webpack-bundles, meine Dateien in der falschen Reihenfolge (CommonsChunkPlugin)

Was ich will, ist zu bündeln und meine JavaScript-vendor-Dateien in einer bestimmten Reihenfolge über CommonsChunkPlugin von Webpack.

Ich bin mit der CommonsChunkPlugin für Webpack. Die Nutzung von der offizielle Dokumentation ist geradlinig und einfach. Es funktioniert wie vorgesehen, aber ich glaube, das plugin ist die Bündelung meine Dateien in alphabetischer Reihenfolge (könnte falsch sein). Es gibt keine Optionen für das plugin angeben der Reihenfolge, wie Sie sollten gebündelt werden.

Hinweis: Für diejenigen, die nicht vertraut sind mit Bootstrap-4, so sind es derzeit
erfordert eine JavaScript-Bibliothek die Abhängigkeit genannt Tether.
Tether geladen werden muss, bevor Bootstrap.

webpack.config.js

module.exports = {
  entry: {
    app: './app.jsx',
    vendor: ['jquery', 'tether', 'bootstrap', 'wowjs'],
  },

  output: {
    path: __dirname + '/dist',
    filename: 'bundle.js',
  },

  plugins: [
    new webpack.optimize.CommonsChunkPlugin({
        name: 'vendor',
        filename: 'vendor.bundle.js'
    }),

    new webpack.optimize.UglifyJsPlugin(),
  ],
};

Zwei Dinge sind hier passiert:

  1. vendor.bundle.js enthält bootstrap, jquery, tether,
    wowjs
  2. bundle.js enthält den rest meiner Anwendung

Bündeln, um:

richtige: jquery, tether, bootstrap, wowjs

falsch: bootstrap, jquery, tether, wowjs

Hinweis in meinem webpack.config.js befahl ich Ihnen genau, wie Sie sollten, aber Sie sind gebündelt in der falsche um. Es spielt keine Rolle, wenn ich Sie neu anzuordnen zufällig das Ergebnis ist das gleiche.

Nachdem ich Webpack zu bauen, meine Anwendung, die vendor.bundle.js zeigt mir die falsche Reihenfolge.

Ich weiß, Sie sind gebündelt falsch Ursache Chrome Dev. Tools sagen mir, es gibt Abhängigkeit Probleme. Wenn ich die Datei über das tool und meine IDE ist es gebündelt in der falschen Reihenfolge.


Meine anderen Ansatz führte auch dazu, daß in der gleichen Ausgabe

Ich habe auch versucht import und require in meinem Eintrag " Datei - (in diesem Fall, app.jsx) ohne die Nutzung der CommonChunkPlugin und lädt auch meine JavaScript-Bibliotheken in alphabetischer Reihenfolge aus irgendeinem Grund.

webpack.config.js

module.exports = {
  entry: './app.jsx',

  output: {
    path: __dirname + '/dist',
    filename: 'bundle.js',
  },

  plugins: [
    new webpack.optimize.UglifyJsPlugin(),
  ],
};

app.jsx (Eintrag)

import './node_modules/jquery/dist/jquery.min';
import './node_modules/tether/dist/js/tether.min';
import './node_modules/bootstrap/dist/js/bootstrap.min';
import './node_modules/wowjs/dist/wow.min';

oder

require('./node_modules/jquery/dist/jquery.min');
require('./node_modules/tether/dist/js/tether.min');
require('./node_modules/bootstrap/dist/js/bootstrap.min');
require('./node_modules/wowjs/dist/wow.min');

Das Ergebnis?

Bootstrap > jQuery > Tether - > wowjs


Wie lade ich meine Verkäufer-Dateien in der richtigen Reihenfolge?

  • Tut alphabetischer Reihenfolge machen es alle falsch? Es geschieht mit Absicht, so dass die Reihenfolge hat keinen Einfluss auf die Inhalte. "Ursache Chrome Dev. Tools sagen mir, es gibt Abhängigkeit Probleme. "--- alle details auf, die?
  • Gut, es gibt riesige Probleme, wenn es erfolgt in alphabetischer Reihenfolge. Ein Wesen, dass Bootstrap, jQuery und erfordert Tether geladen werden, bevor Sie selbst sonst kann es nicht richtig funktionieren.
  • Die Platzierung, um in die Bündel nicht in irgendeiner Weise Einfluss auf die Reihenfolge, wie Sie geladen sind, in der Laufzeit. Das problem wird durch etwas anderes verursacht.
InformationsquelleAutor Ollie Cee | 2017-03-23
Schreibe einen Kommentar