docs: set-up sapper template

This commit is contained in:
Eric Liu 2020-05-09 07:19:03 -07:00
commit 04b8978ec2
22 changed files with 5209 additions and 0 deletions

91
docs/webpack.config.js Normal file
View file

@ -0,0 +1,91 @@
const webpack = require("webpack");
const path = require("path");
const config = require("@metonym/sapper/config/webpack.js");
const pkg = require("./package.json");
const OptimizeCssAssetsPlugin = require("optimize-css-assets-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const AutoprefixerPlugin = require("autoprefixer");
const mode = process.env.NODE_ENV || "production";
const dev = mode === "development";
const alias = {
svelte: path.resolve("node_modules", "svelte"),
sapper: path.resolve("node_modules", "@metonym/sapper"),
};
const extensions = [".mjs", ".js", ".json", ".svelte", ".html"];
const mainFields = ["svelte", "module", "browser", "main"];
module.exports = {
client: {
entry: config.client.entry(),
output: config.client.output(),
resolve: { alias, extensions, mainFields },
module: {
rules: [
{
test: /\.(svelte|html)$/,
use: {
loader: "svelte-loader",
options: {
dev,
hydratable: true,
hotReload: false, // pending https://github.com/sveltejs/svelte/issues/2377
},
},
},
{
test: [/\.s[ac]ss$/i, /\.css$/],
use: [
!dev ? MiniCssExtractPlugin.loader : "style-loader",
"css-loader",
{
loader: "postcss-loader",
options: {
plugins: [
AutoprefixerPlugin({
overrideBrowserslist: ["last 1 version", "ie >= 11"],
}),
],
},
},
"sass-loader",
],
},
],
},
mode,
plugins: [
new MiniCssExtractPlugin({ filename: "[name].[chunkhash].css" }),
new OptimizeCssAssetsPlugin({}),
// pending https://github.com/sveltejs/svelte/issues/2377
// 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: { alias, extensions, mainFields },
externals: Object.keys(pkg.dependencies).concat("encoding"),
module: {
rules: [
{
test: /\.(svelte|html)$/,
use: {
loader: "svelte-loader",
options: { css: false, generate: "ssr", dev },
},
},
],
},
mode,
performance: { hints: false },
},
};