From 5fe91bfcc0aaf5bd3acd4a2c856c766fa2ec94ce Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Tue, 21 Aug 2018 00:59:18 +0800 Subject: [PATCH] refactor($core): extract internal plugin 'override-css' --- .../core/lib/internal-plugins/overrideCSS.js | 26 +++++++++++++++++++ packages/@vuepress/core/lib/prepare/index.js | 19 +------------- packages/docs/docs/.vuepress/override.styl | 0 3 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 packages/@vuepress/core/lib/internal-plugins/overrideCSS.js create mode 100644 packages/docs/docs/.vuepress/override.styl diff --git a/packages/@vuepress/core/lib/internal-plugins/overrideCSS.js b/packages/@vuepress/core/lib/internal-plugins/overrideCSS.js new file mode 100644 index 00000000..ad54c110 --- /dev/null +++ b/packages/@vuepress/core/lib/internal-plugins/overrideCSS.js @@ -0,0 +1,26 @@ +const path = require('path') +const { writeTemp, fs, logger, chalk } = require('@vuepress/shared-utils') + +module.exports = (options, context) => ({ + name: '@vuepress/internal-override-css', + + async ready () { + const { sourceDir } = context + + const overridePath = path.resolve(sourceDir, '.vuepress/override.styl').replace(/[\\]+/g, '/') + const hasUserOverride = fs.existsSync(overridePath) + await writeTemp('override.styl', hasUserOverride ? `@import(${JSON.stringify(overridePath)})` : ``) + + const stylePath = path.resolve(sourceDir, '.vuepress/style.styl').replace(/[\\]+/g, '/') + const hasUserStyle = fs.existsSync(stylePath) + await writeTemp('style.styl', hasUserStyle ? `@import(${JSON.stringify(stylePath)})` : ``) + + // Temporary tip, will be removed at next release. + if (hasUserOverride && !hasUserStyle) { + logger.tip( + `${chalk.magenta('override.styl')} has been split into 2 APIs, we recommend you upgrade to continue.\n` + + ` See: ${chalk.magenta('https://vuepress.vuejs.org/default-theme-config/#simple-css-override')}` + ) + } + } +}) diff --git a/packages/@vuepress/core/lib/prepare/index.js b/packages/@vuepress/core/lib/prepare/index.js index 6cd055df..875cf5bc 100644 --- a/packages/@vuepress/core/lib/prepare/index.js +++ b/packages/@vuepress/core/lib/prepare/index.js @@ -1,7 +1,6 @@ const path = require('path') const resolveOptions = require('./resolveOptions') const resolveSiteData = require('./resolveSiteData') -const { fs, chalk, logger, writeTemp } = require('@vuepress/shared-utils') const Plugin = require('../plugin-api/index') const PluginContext = require('../plugin-api/context') @@ -32,6 +31,7 @@ module.exports = async function prepare ({ .use(require('../internal-plugins/importAsyncComponent')) .use(require('../internal-plugins/enhanceApp')) .use(require('../internal-plugins/siteData')) + .use(require('../internal-plugins/overrideCSS')) // user plugin .useByPluginsConfig(cliPlugins) .useByPluginsConfig(siteConfig.plugins) @@ -63,23 +63,6 @@ module.exports = async function prepare ({ await pluginOptions.clientDynamicModules.apply() await pluginOptions.globalUIComponents.apply() - // 7. handle user override - const overridePath = path.resolve(sourceDir, '.vuepress/override.styl').replace(/[\\]+/g, '/') - const hasUserOverride = fs.existsSync(overridePath) - await writeTemp('override.styl', hasUserOverride ? `@import(${JSON.stringify(overridePath)})` : ``) - - const stylePath = path.resolve(sourceDir, '.vuepress/style.styl').replace(/[\\]+/g, '/') - const hasUserStyle = fs.existsSync(stylePath) - await writeTemp('style.styl', hasUserStyle ? `@import(${JSON.stringify(stylePath)})` : ``) - - // Temporary tip, will be removed at next release. - if (hasUserOverride && !hasUserStyle) { - logger.tip( - `${chalk.magenta('override.styl')} has been split into 2 APIs, we recommend you upgrade to continue.\n` + - ` See: ${chalk.magenta('https://vuepress.vuejs.org/default-theme-config/#simple-css-override')}` - ) - } - await pluginOptions.enhanceAppFiles.apply() return options diff --git a/packages/docs/docs/.vuepress/override.styl b/packages/docs/docs/.vuepress/override.styl new file mode 100644 index 00000000..e69de29b