webpackJsonp ist nicht definiert: webpack-dev-server und CommonsChunkPlugin
Dies ist mein webpack.config.js Datei:
const webpack = require('webpack');
const path = require('path');
module.exports = {
cache: true,
devtool: 'source-map',
entry: {
app : [
'./src/index.js'
],
vendor: ['lodash']
},
output: {
filename: 'bundle.js',
path: path.join(__dirname, 'dist'),
publicPath: '/dist/',
pathinfo: true
},
module: {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loaders: ['babel'] },
{ test: /\.scss/, exclude: /node_modules/, loaders: ['style', 'css', 'sass'] }
]
},
plugins: [
new webpack.NoErrorsPlugin(),
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.bundle.js', Infinity)
]
};
- Und dies ist meine Skripte, läuft das webpack-dev-server:
const webpack =require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const webpackConfig = require('../webpack.config');
const _ = require('lodash');
const webpackDevConfig = _.cloneDeep(webpackConfig);
const devPort = 3000;
webpackDevConfig.entry.app.unshift('webpack/hot/dev-server');
webpackDevConfig.entry.app.unshift('webpack-dev-server/client?http://localhost:' + devPort + '/');
webpackDevConfig.plugins.push(new webpack.HotModuleReplacementPlugin());
new WebpackDevServer(webpack(webpackDevConfig), {
publicPath: webpackConfig.output.publicPath,
hot: true,
stats: {
colors: true,
chunks: false
}
}).listen(devPort, 'localhost');
Den webpack
Ausgabe des Befehls ist gut (bundle.js und vendor.bundle.js), aber der dev-server wird nicht mit webpackJsonp is not defined
(obwohl seine in-memory-Zusammenstellung gelungen).
Beim entfernen CommonsChunkPlugin
aus webpack.config.js - es funktioniert alles einwandfrei:
...
entry: [
'./src/index.js'
],
...
plugins: [
new webpack.NoErrorsPlugin()
]
Irgendwelche Ideen?
- Haben Sie eine Lösung finden ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem index.html Datei einfach anrufen vendor.bundle.js vor bundle.js
So, jetzt sollte es funktionieren. Mehr Informationen.
Umbenennen Verkäufer Einstiegspunkt
'vendor.js': ['lodash']
Nur erweitern ein wenig auf das Konzept der Verkäufer muss zuerst kommen, da die Laufzeit enthalten ist, in der es (alles definiert, dass alle Variablen und Methoden ausführen, während der client-Last-Zeit-wegen all der webpacking).
Wenn Sie eine manifest-Datei (da der chunking und so weiter), haben Sie, um das erste da wird es dann enthalten die runtime wegen der Art, wie das Modul aufgebaut ist.