[英]Perf is not defined - running react app with webpack-dev-server
[英]webpackJsonp is not defined: webpack-dev-server and CommonsChunkPlugin
這是我的webpack.config.js文件:
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)
]
};
這是我運行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');
webpack
命令輸出正常(bundle.js和vendor.bundle.js),但是,dev服務器失敗, webpackJsonp is not defined
(盡管其內存中編譯成功)。
從webpack.config.js中刪除CommonsChunkPlugin
時 - 一切正常:
...
entry: [
'./src/index.js'
],
...
plugins: [
new webpack.NoErrorsPlugin()
]
有任何想法嗎?
在index.html文件中,只需在bundle.js之前調用vendor.bundle.js
<script src="assets/js/vendor.bundle.js"></script>
<script src="assets/js/bundle.js"></script>
這就是全部,現在它應該工作。 更多信息。
將供應商入口點重命名為
'vendor.js':['lodash']
只是為了擴展這個概念,供應商必須先來,因為運行時包含在那里(所有的定義所有變量和方法在客戶端加載時運行,因為所有的webpacking)。
如果您使用清單文件(因為分塊等),您必須首先放置它,因為它將包含運行時,因為模塊的構建方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.