feat: add uglifyjs webpack plugin

This commit is contained in:
endiliey 2018-09-14 02:58:29 +08:00
parent ca623d7d38
commit 0365403a75
4 changed files with 37 additions and 9 deletions

View file

@ -1,5 +1,6 @@
const Config = require('webpack-chain');
const CSSExtractPlugin = require('mini-css-extract-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const path = require('path');
const mdLoader = require.resolve('./loader/markdown');
@ -74,7 +75,7 @@ module.exports = function createBaseConfig(props, isServer) {
mdRule
.use('markdown-loader')
.loader(mdLoader)
.options({siteConfig});
.options({siteConfig, siteDir, docsDir});
const cssRule = config.module.rule('css').test(/\.css$/);
if (isProd) {
@ -101,5 +102,20 @@ module.exports = function createBaseConfig(props, isServer) {
}
]);
if (isProd) {
config.optimization.minimizer([
new UglifyJsPlugin({
cache: true,
uglifyOptions: {
warnings: false,
compress: false,
ecma: 6,
mangle: true,
},
sourceMap: true
})
]);
}
return config;
};

View file

@ -3,21 +3,19 @@ const fm = require('front-matter');
module.exports = function(fileString) {
const options = getOptions(this);
const {siteConfig, siteDir, docsDir } = options;
const {body} = fm(fileString);
const content = JSON.stringify(body);
/*
TODO replace all the markdown linking to correct url depends on whether it's versioned/translated/normal docs
e.g: [test](test.md) become [test](/docs/test)
Process the markdown file content, including replacing all relative markdown links
*/
const siteConfig = JSON.stringify(options.siteConfig);
const {body: content = ''} = fm(fileString);
return (
`import React from 'react';\n` +
`import Markdown from '@theme/Markdown'\n` +
`export default () => (
<Markdown siteConfig={${siteConfig}}>
{${content}}
<Markdown siteConfig={${JSON.stringify(siteConfig)}}>
{${JSON.stringify(content)}}
</Markdown>
);`
);

View file

@ -80,6 +80,7 @@
"semver": "^5.5.0",
"static-site-generator-webpack-plugin": "endiliey/static-site-generator-webpack-plugin#master",
"style-loader": "^0.22.1",
"uglifyjs-webpack-plugin": "^1.3.0",
"webpack": "^4.16.3",
"webpack-chain": "^4.8.0",
"webpack-merge": "^4.1.4",

View file

@ -6712,6 +6712,19 @@ uglifyjs-webpack-plugin@^1.2.4:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
uglifyjs-webpack-plugin@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"
dependencies:
cacache "^10.0.4"
find-cache-dir "^1.0.0"
schema-utils "^0.4.5"
serialize-javascript "^1.4.0"
source-map "^0.6.1"
uglify-es "^3.3.4"
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
underscore.string@~2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"