Skip to content

Commit 4575f12

Browse files
committed
Cleans up code. Adds helpful comments.
1 parent b102bc4 commit 4575f12

File tree

10 files changed

+6971
-80
lines changed

10 files changed

+6971
-80
lines changed

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
"node-fetch": "^2.6.0",
4141
"route-cache": "^0.4.4",
4242
"serve-favicon": "^2.5.0",
43-
"sw-precache-webpack-plugin": "^0.11.5",
4443
"vue": "^2.6.10",
4544
"vue-analytics": "^5.17.0",
4645
"vue-meta": "git+https://github.com/codingfriend1/vue-meta.git#dev",
@@ -58,7 +57,6 @@
5857
"friendly-errors-webpack-plugin": "^1.7.0",
5958
"gulp": "^3.9.1",
6059
"gulp-inject": "^4.2.0",
61-
"html-webpack-plugin": "^3.2.0",
6260
"http-server": "^0.11.1",
6361
"imagemin": "^6.1.0",
6462
"imagemin-jpeg-recompress": "^6.0.0",

the-magic/build/build.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
/**
2+
* Renders all markdown files into html files and injects webpack assets
3+
* Also renders sitemap.xml and feed.xml to the designated output folder
4+
*/
5+
16
const isProd = process.env.NODE_ENV === "production";
27
const path = require("path");
38
const url = require("url");
49
const fs = require("fs");
510
const { createBundleRenderer } = require("vue-server-renderer");
611
const mkdirp = require("mkdirp");
7-
const getDirName = require("path").dirname;
812
const config = require("../../site.config");
913
const webpack = require('webpack');
1014
const { renderMarkdownFolder } = require("./render-markdown.js");
@@ -32,7 +36,7 @@ function createFile(url, html) {
3236

3337
url = path.join(folders.output_folder, url);
3438

35-
mkdirp(getDirName(url), function(err) {
39+
mkdirp(path.dirname(url), function(err) {
3640
if (err) return cb(err);
3741
fs.writeFile(url, html, err => {
3842
if (err) {

the-magic/build/folders.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,19 @@ const folders = {
88
node_modules: path.resolve(root, "node_modules"),
99
the_magic: path.resolve(root, 'the-magic'),
1010
boot: path.resolve(root, "the-magic", "boot"),
11-
published_html_path: path.resolve(root, "the-magic", "boot", "_index.html"),
11+
src: path.resolve(root, "src"),
12+
entry_client: path.resolve(root, "the-magic", "boot", "index.js"),
13+
entry_server: path.resolve(root, "the-magic", "boot", "entry-server.js"),
1214
markdown_folder: path.resolve(root, config.folderStructure.markdown),
1315
template_html_path: path.resolve(root, config.folderStructure.html),
14-
css_folder: path.resolve(root, config.folderStructure.css),
16+
css_path: path.resolve(root, config.folderStructure.css),
17+
vue_path: path.resolve(root, config.folderStructure.vue),
18+
js_path: path.resolve(root, config.folderStructure.js),
19+
config_path: path.resolve(root, 'site.config.js'),
1520
components_folder: path.resolve(root, config.folderStructure.components),
1621
partials_folder: path.resolve(root, config.folderStructure.partials),
1722
static_folder: path.resolve(root, config.folderStructure.static),
23+
images_folder: path.resolve(root, config.folderStructure.images),
1824
html_template: path.resolve(root, config.folderStructure.html),
1925
output_folder: path.resolve(root, config.folderStructure.output),
2026
};

the-magic/build/optimize-images.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,11 @@ const imagemin = require("imagemin-keep-folder")
77
const imageminJpegRecompress = require('imagemin-jpeg-recompress')
88
const webp = require("imagemin-webp")
99
const imageminOptipng = require('imagemin-optipng')
10-
const config = require('../../site.config.js')
10+
const folders = require('./folder.js')
1111

12-
const inputFolder = path.resolve(__dirname, "..", "..", config.folderStructure.images)
13-
const outputFolder = path.resolve(__dirname, "..", "..", config.folderStructure.static)
14-
15-
const PNG = path.join(inputFolder, `**`, `/*.png`)
16-
const JPG = path.join(inputFolder, `**`, `*.jpg`)
17-
const JPEG = path.join(inputFolder, `**`, `*.jpeg`)
12+
const PNG = path.join(folders.images_folder, `**`, `*.png`)
13+
const JPG = path.join(folders.images_folder, `**`, `*.jpg`)
14+
const JPEG = path.join(folders.images_folder, `**`, `*.jpeg`)
1815

1916
imagemin([PNG], {
2017
use: [
@@ -23,7 +20,7 @@ imagemin([PNG], {
2320
})
2421
],
2522
replaceOutputDir: output => {
26-
return path.join(outputFolder, path.basename(output))
23+
return path.join(folders.static_folder, path.basename(output))
2724
}
2825
});
2926

@@ -34,7 +31,7 @@ imagemin([PNG], {
3431
})
3532
],
3633
replaceOutputDir: output => {
37-
return path.join(outputFolder, path.basename(output))
34+
return path.join(folders.static_folder, path.basename(output))
3835
}
3936
});
4037

@@ -45,7 +42,7 @@ imagemin([JPG, JPEG], {
4542
})
4643
],
4744
replaceOutputDir: output => {
48-
return path.join(outputFolder, path.basename(output))
45+
return path.join(folders.static_folder, path.basename(output))
4946
}
5047
});
5148

@@ -63,6 +60,6 @@ imagemin([JPG, JPEG], {
6360
})
6461
],
6562
replaceOutputDir: output => {
66-
return path.join(outputFolder, path.basename(output))
63+
return path.join(folders.static_folder, path.basename(output))
6764
}
6865
});

the-magic/build/server.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
/**
2+
* Based off of
3+
* https://github.com/vuejs/vue-hackernews-2.0/blob/master/server.js
4+
* By Evan You
5+
* Contains modifications
6+
*/
7+
18
const fs = require('fs')
29
const path = require('path')
310
const LRU = require('lru-cache')
@@ -9,8 +16,6 @@ const resolve = file => path.resolve(__dirname, file)
916
const { createBundleRenderer } = require('vue-server-renderer')
1017
const { renderMarkdownFile, renderMarkdownFolder } = require("./render-markdown.js");
1118
const folders = require('./folders.js')
12-
const config = require("../../site.config")
13-
1419
const isProd = process.env.NODE_ENV === 'production'
1520
const useMicroCache = process.env.MICRO_CACHE !== 'false'
1621
const serverInfo =

the-magic/build/setup-dev-server.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
/**
2+
* Retrieved from
3+
* https://github.com/vuejs/vue-hackernews-2.0/blob/master/build/setup-dev-server.js
4+
* By Evan You
5+
*/
6+
17
const fs = require('fs')
28
const path = require('path')
39
const MFS = require('memory-fs')
@@ -78,10 +84,7 @@ module.exports = function setupDevServer (app, templatePath, cb) {
7884

7985
// read bundle generated by vue-ssr-webpack-plugin
8086
bundle = JSON.parse(readFile(mfs, 'vue-ssr-server-bundle.json'))
81-
setTimeout(() => {
82-
update()
83-
}, 1000);
84-
87+
update()
8588
})
8689

8790
return readyPromise

the-magic/build/webpack.base.config.js

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ const CopyWebpackPlugin = require("copy-webpack-plugin")
77
const ProgressBarPlugin = require("progress-bar-webpack-plugin")
88
const CompressionWebpackPlugin = require("compression-webpack-plugin")
99
const { VueLoaderPlugin } = require('vue-loader')
10-
const config = require('../../site.config')
1110
const folders = require('./folders.js')
12-
1311
const NODE_ENV = process.env.NODE_ENV || 'development'
1412
const isProd = NODE_ENV === 'production'
1513

@@ -28,10 +26,10 @@ module.exports = {
2826
resolve: {
2927
alias: {
3028
vue: "vue/dist/vue.esm.js",
31-
config: path.join(folders.root, "site.config.js"),
32-
src: path.join(folders.root, "src"),
33-
static: path.join(folders.root, "src", "static"),
34-
templates: path.join(folders.root, "src", "templates"),
29+
config: folders.config_path,
30+
src: folders.src,
31+
static: folders.static_folder,
32+
templates: folders.components_folder,
3533
}
3634
},
3735
module: {
@@ -46,9 +44,6 @@ module.exports = {
4644
optimizeSSR: false,
4745
compilerOptions: {
4846
preserveWhitespace: false
49-
},
50-
loaders: {
51-
html: "pug-loader",
5247
}
5348
}
5449
},
@@ -86,7 +81,7 @@ module.exports = {
8681
'css-loader',
8782
'sass-loader'
8883
],
89-
include: [folders.css_folder, folders.components_folder, folders.partials_folder]
84+
include: [folders.css_path, folders.components_folder, folders.partials_folder]
9085
},
9186
{
9287
test: /\.styl(us)?$/,
@@ -96,7 +91,7 @@ module.exports = {
9691
'stylus-loader'
9792
],
9893
exclude: folders.node_modules,
99-
include: [folders.css_folder, folders.components_folder, folders.partials_folder]
94+
include: [folders.css_path, folders.components_folder, folders.partials_folder]
10095
},
10196
{
10297
test: /\.svg$/,
@@ -126,9 +121,12 @@ module.exports = {
126121
},
127122
plugins: [
128123
new webpack.DefinePlugin({
129-
main_js: JSON.stringify(path.resolve(folders.root, config.folderStructure.js)),
130-
main_css: JSON.stringify(path.resolve(folders.root, config.folderStructure.css)),
131-
main_vue: JSON.stringify(path.resolve(folders.root, config.folderStructure.vue))
124+
main_js: JSON.stringify(folders.js_path),
125+
main_css: JSON.stringify(folders.css_path),
126+
main_vue: JSON.stringify(folders.vue_path),
127+
128+
// strip dev-only code in Vue source
129+
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
132130
}),
133131
new MiniCssExtractPlugin({
134132
filename: "production.css"
Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,20 @@
11
const webpack = require('webpack')
2-
const path = require('path')
32
const merge = require('webpack-merge')
43
const base = require('./webpack.base.config')
5-
const SWPrecachePlugin = require('sw-precache-webpack-plugin')
6-
const HtmlWebpackPlugin = require("html-webpack-plugin")
74
const VueSSRClientPlugin = require('vue-server-renderer/client-plugin')
8-
const site_config = require("../../site.config")
95
const folders = require('./folders.js')
106

117
const config = merge(base, {
128
entry: {
13-
app: path.resolve(folders.boot, 'index.js')
14-
},
15-
resolve: {
16-
alias: {
17-
'create-api': './create-api-client.js'
18-
}
9+
app: folders.entry_client
1910
},
2011
plugins: [
2112
// strip dev-only code in Vue source
2213
new webpack.DefinePlugin({
23-
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
2414
'process.env.VUE_ENV': '"client"'
2515
}),
2616
new VueSSRClientPlugin()
2717
]
2818
})
2919

30-
// if (process.env.NODE_ENV === 'production') {
31-
// config.plugins.push(
32-
// // auto generate service worker
33-
// new SWPrecachePlugin({
34-
// cacheId: 'vue-hn',
35-
// filename: 'service-worker.js',
36-
// minify: true,
37-
// dontCacheBustUrlsMatching: /./,
38-
// staticFileGlobsIgnorePatterns: [/\.map$/, /\.json$/],
39-
// runtimeCaching: [
40-
// {
41-
// urlPattern: '/',
42-
// handler: 'networkFirst'
43-
// },
44-
// {
45-
// urlPattern: /\/(top|new|show|ask|jobs)/,
46-
// handler: 'networkFirst'
47-
// },
48-
// ]
49-
// })
50-
// )
51-
// }
52-
5320
module.exports = config

the-magic/build/webpack.server.config.js

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,26 @@
11
const webpack = require('webpack')
2-
const path = require('path')
32
const merge = require('webpack-merge')
43
const base = require('./webpack.base.config')
54
const nodeExternals = require('webpack-node-externals')
65
const VueSSRServerPlugin = require('vue-server-renderer/server-plugin')
7-
const site_config = require("../../site.config")
86
const folders = require('./folders.js')
97

108
module.exports = merge(base, {
119
target: 'node',
1210
devtool: '#source-map',
13-
entry: path.resolve(folders.boot, "entry-server.js"),
11+
entry: folders.entry_server,
1412
output: {
1513
path: folders.output_folder,
1614
filename: "[name].js",
1715
libraryTarget: 'commonjs2'
1816
},
19-
resolve: {
20-
alias: {
21-
'create-api': './create-api-server.js'
22-
}
23-
},
2417
// https://webpack.js.org/configuration/externals/#externals
2518
// https://github.com/liady/webpack-node-externals
2619
externals: nodeExternals({
2720
whitelist: /(\.css$|\.less$|\.sass$|\.scss$|\.styl$|\.stylus$|\.(png|jpe?g|gif|svg)(\?.*)?$|\.(woff2?|eot|ttf|otf)(\?.*)?$)/
2821
}),
2922
plugins: [
3023
new webpack.DefinePlugin({
31-
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
3224
'process.env.VUE_ENV': '"server"'
3325
}),
3426
new VueSSRServerPlugin()

0 commit comments

Comments
 (0)