Merge pull request #83 from sveltejs/webpack-0.21

Webpack 0.21
This commit is contained in:
Rich Harris
2018-09-23 22:04:13 -04:00
committed by GitHub
27 changed files with 91 additions and 93 deletions

2
.gitignore vendored
View File

@@ -7,4 +7,4 @@ yarn-error.log
/templates/.* /templates/.*
/export/ /export/
/build/ /build/
/app/manifest/ /src/manifest/

20
package-lock.json generated
View File

@@ -3365,12 +3365,12 @@
} }
}, },
"sapper": { "sapper": {
"version": "0.20.0", "version": "0.21.0",
"resolved": "https://registry.npmjs.org/sapper/-/sapper-0.20.0.tgz", "resolved": "https://registry.npmjs.org/sapper/-/sapper-0.21.0.tgz",
"integrity": "sha512-Y82mPz7T0lPBtQuB7bldBUi08//8U1MLp8GVpdR0wzM2Hnro6D1QLv0L+ohHIHDPGsYb8T6+NMEX5pdkTF+Z4A==", "integrity": "sha512-uhie/KdZmozvXc4c6j+Zehw/jtxP3claCma22wO/e8fYMm/yw0vffQi2T/Jp8TPDI+GbNiF+tQKkX8axszym2g==",
"requires": { "requires": {
"html-minifier": "^3.5.16", "html-minifier": "^3.5.16",
"shimport": "^0.0.10", "shimport": "0.0.11",
"source-map-support": "^0.5.6", "source-map-support": "^0.5.6",
"sourcemap-codec": "^1.4.1", "sourcemap-codec": "^1.4.1",
"string-hash": "^1.1.3", "string-hash": "^1.1.3",
@@ -3472,9 +3472,9 @@
} }
}, },
"shimport": { "shimport": {
"version": "0.0.10", "version": "0.0.11",
"resolved": "https://registry.npmjs.org/shimport/-/shimport-0.0.10.tgz", "resolved": "https://registry.npmjs.org/shimport/-/shimport-0.0.11.tgz",
"integrity": "sha512-3xPFDLmcLj87sx0OwA60qbloMQUsu6VGF97IG4RqxTf91sGeiaaXOPxM1PoQHbaTm4TOhH8zosokqLAZtuNGnA==" "integrity": "sha512-wRlG/wMuV/czrzJEWBUPjydU/Ve0kTrTH8wHLRjuY6S2BDB+qDDXkTY/WrNc/7t5jnd0LPVO1sRIE7Ga6uXTpw=="
}, },
"sirv": { "sirv": {
"version": "0.2.1", "version": "0.2.1",
@@ -3639,9 +3639,9 @@
"dev": true "dev": true
}, },
"sourcemap-codec": { "sourcemap-codec": {
"version": "1.4.1", "version": "1.4.3",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.3.tgz",
"integrity": "sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA==" "integrity": "sha512-vFrY/x/NdsD7Yc8mpTJXuao9S8lq08Z/kOITHz6b7YbfI9xL8Spe5EvSQUHOI7SbpY8bRPr0U3kKSsPuqEGSfA=="
}, },
"spdx-correct": { "spdx-correct": {
"version": "3.0.0", "version": "3.0.0",

View File

@@ -14,7 +14,7 @@
"dependencies": { "dependencies": {
"compression": "^1.7.1", "compression": "^1.7.1",
"polka": "^0.4.0", "polka": "^0.4.0",
"sapper": "^0.20.0", "sapper": "^0.21.0",
"sirv": "^0.2.0" "sirv": "^0.2.0"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -10,9 +10,9 @@ const dev = NODE_ENV === 'development';
polka() // You can also use Express polka() // You can also use Express
.use( .use(
compression({ threshold: 0 }), compression({ threshold: 0 }),
sirv('assets', { dev }), sirv('static', { dev }),
sapper({ manifest }) sapper({ manifest })
) )
.listen(PORT, err => { .listen(PORT, err => {
if (err) console.log('error', err); if (err) console.log('error', err);
}) });

View File

Before

Width:  |  Height:  |  Size: 721 B

After

Width:  |  Height:  |  Size: 721 B

View File

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

77
webpack.config.js Normal file
View File

@@ -0,0 +1,77 @@
const webpack = require('webpack');
const config = require('sapper/config/webpack.js');
const pkg = require('./package.json');
const mode = process.env.NODE_ENV;
const dev = mode === 'development';
module.exports = {
client: {
entry: config.client.entry(),
output: config.client.output(),
resolve: {
extensions: ['.js', '.json', '.html'],
mainFields: ['svelte', 'module', 'browser', 'main']
},
module: {
rules: [
{
test: /\.html$/,
use: {
loader: 'svelte-loader',
options: {
dev,
hydratable: true,
hotReload: true
}
}
}
]
},
mode,
plugins: [
dev && new webpack.HotModuleReplacementPlugin(),
new webpack.DefinePlugin({
'process.browser': true,
'process.env.NODE_ENV': JSON.stringify(mode)
}),
].filter(Boolean),
devtool: dev && 'inline-source-map'
},
server: {
entry: config.server.entry(),
output: config.server.output(),
target: 'node',
resolve: {
extensions: ['.js', '.json', '.html'],
mainFields: ['svelte', 'module', 'browser', 'main']
},
externals: Object.keys(pkg.dependencies),
module: {
rules: [
{
test: /\.html$/,
use: {
loader: 'svelte-loader',
options: {
css: false,
generate: 'ssr',
dev
}
}
}
]
},
mode: process.env.NODE_ENV,
performance: {
hints: false // it doesn't matter if server.js is large
}
},
serviceworker: {
entry: config.serviceworker.entry(),
output: config.serviceworker.output(),
mode: process.env.NODE_ENV
}
};

View File

@@ -1,38 +0,0 @@
const webpack = require('webpack');
const config = require('sapper/config/webpack.js');
const mode = process.env.NODE_ENV;
const dev = mode === 'development';
module.exports = {
entry: config.client.entry(),
output: config.client.output(),
resolve: {
extensions: ['.js', '.json', '.html'],
mainFields: ['svelte', 'module', 'browser', 'main']
},
module: {
rules: [
{
test: /\.html$/,
use: {
loader: 'svelte-loader',
options: {
dev,
hydratable: true,
hotReload: true
}
}
}
]
},
mode,
plugins: [
dev && new webpack.HotModuleReplacementPlugin(),
new webpack.DefinePlugin({
'process.browser': true,
'process.env.NODE_ENV': JSON.stringify(mode)
}),
].filter(Boolean),
devtool: dev && 'inline-source-map'
};

View File

@@ -1,34 +0,0 @@
const config = require('sapper/config/webpack.js');
const pkg = require('../package.json');
const dev = process.env.NODE_ENV === 'development';
module.exports = {
entry: config.server.entry(),
output: config.server.output(),
target: 'node',
resolve: {
extensions: ['.js', '.json', '.html'],
mainFields: ['svelte', 'module', 'browser', 'main']
},
externals: Object.keys(pkg.dependencies),
module: {
rules: [
{
test: /\.html$/,
use: {
loader: 'svelte-loader',
options: {
css: false,
generate: 'ssr',
dev
}
}
}
]
},
mode: process.env.NODE_ENV,
performance: {
hints: false // it doesn't matter if server.js is large
}
};

View File

@@ -1,7 +0,0 @@
const config = require('sapper/config/webpack.js');
module.exports = {
entry: config.serviceworker.entry(),
output: config.serviceworker.output(),
mode: process.env.NODE_ENV
};