1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00

Revert "Move all NPM modules into a single chunk in dev mode. (#1505)"

This reverts commit a879f47f9a.
This commit is contained in:
Guillermo Rauch 2017-03-26 11:24:58 -07:00
parent 0a452ba3e4
commit 50274959cb
3 changed files with 4 additions and 22 deletions

View file

@ -93,26 +93,15 @@ export default async function createCompiler (dir, { dev = false, quiet = false,
name: 'commons', name: 'commons',
filename: 'commons.js', filename: 'commons.js',
minChunks (module, count) { minChunks (module, count) {
// In the dev we use on-demand-entries. // In the dev we use on-deman-entries.
// So, it makes no sense to use commonChunks based on the minChunks count. // So, it makes no sense to use commonChunks with that.
// Instead, we move all the code in node_modules into this chunk. if (dev) return false
// With that, we could gain better performance for page-rebuild process.
if (dev) {
return module.context && module.context.indexOf('node_modules') >= 0
}
// NOTE: it depends on the fact that the entry funtion is always called // NOTE: it depends on the fact that the entry funtion is always called
// before applying CommonsChunkPlugin // before applying CommonsChunkPlugin
return count >= minChunks return count >= minChunks
} }
}), }),
// This chunk contains all the webpack related code. So, all the changes
// related to that happens to this chunk.
// It won't touch commons.js and that gives us much better re-build perf.
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
filename: 'manifest.js'
}),
new webpack.DefinePlugin({ new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(dev ? 'development' : 'production') 'process.env.NODE_ENV': JSON.stringify(dev ? 'development' : 'production')
}), }),
@ -132,7 +121,7 @@ export default async function createCompiler (dir, { dev = false, quiet = false,
} else { } else {
plugins.push( plugins.push(
new CombineAssetsPlugin({ new CombineAssetsPlugin({
input: ['manifest.js', 'commons.js', 'main.js'], input: ['commons.js', 'main.js'],
output: 'app.js' output: 'app.js'
}), }),
new webpack.optimize.UglifyJsPlugin({ new webpack.optimize.UglifyJsPlugin({

View file

@ -78,7 +78,6 @@ export class NextScript extends Component {
if (dev) { if (dev) {
return ( return (
<div> <div>
{ this.getChunkScript('manifest.js') }
{ this.getChunkScript('commons.js') } { this.getChunkScript('commons.js') }
{ this.getChunkScript('main.js') } { this.getChunkScript('main.js') }
</div> </div>

View file

@ -90,12 +90,6 @@ export default class Server {
await this.serveStatic(req, res, p) await this.serveStatic(req, res, p)
}, },
'/_next/:hash/manifest.js': async (req, res, params) => {
this.handleBuildHash('manifest.js', params.hash, res)
const p = join(this.dir, '.next/manifest.js')
await this.serveStatic(req, res, p)
},
'/_next/:hash/main.js': async (req, res, params) => { '/_next/:hash/main.js': async (req, res, params) => {
this.handleBuildHash('main.js', params.hash, res) this.handleBuildHash('main.js', params.hash, res)
const p = join(this.dir, '.next/main.js') const p = join(this.dir, '.next/main.js')