From 4b019a0688e8925d52e435cb186d4942556ad5cd Mon Sep 17 00:00:00 2001 From: bac-joker Date: Thu, 4 Mar 2021 17:13:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20bable=20plugin=20|=20presets=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=B8=8D=E8=B5=B7=E4=BD=9C=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/commands/webpackConfig/getBableOpts.js | 13 +++++++++---- .../src/plugins/commands/webpackConfig/index.js | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/getBableOpts.js b/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/getBableOpts.js index 22b7cac8..92790902 100644 --- a/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/getBableOpts.js +++ b/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/getBableOpts.js @@ -2,9 +2,10 @@ import { winPath } from '@umijs/utils'; -function getBabelOpts({ +function getBableOpts({ cwd, targets, + config, presetOpts }) { const presets = [ @@ -19,7 +20,8 @@ function getBabelOpts({ }, modules: false } - ] + ], + ...(config.extraBabelPresets || []) ]; const plugins = [ require('@babel/plugin-proposal-export-default-from').default, @@ -45,7 +47,8 @@ function getBabelOpts({ importOpts.libraryName ]) : []), - require.resolve('@vue/babel-plugin-jsx') + require.resolve('@vue/babel-plugin-jsx'), + ...(config.extraBabelPresets || []) ]; return { babelrc: false, @@ -62,6 +65,7 @@ function getBabelOpts({ export default async ({ cwd, + config, modifyBabelOpts, modifyBabelPresetOpts, targets @@ -72,8 +76,9 @@ export default async ({ if (modifyBabelPresetOpts) { presetOpts = await modifyBabelPresetOpts(presetOpts); } - let babelOpts = getBabelOpts({ + let babelOpts = getBableOpts({ cwd, + config, presetOpts, targets }); diff --git a/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js b/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js index dcbcb39f..861d19c5 100644 --- a/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js +++ b/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js @@ -157,6 +157,7 @@ export default async function getConfig({ const { targets, browserslist } = getTargetsAndBrowsersList({ config }); const babelOpts = await getBableOpts({ cwd, + config, modifyBabelOpts, modifyBabelPresetOpts, targets From c65e1c089ceefa59fdd732e3fd8fd4a3746dd224 Mon Sep 17 00:00:00 2001 From: bac-joker Date: Thu, 4 Mar 2021 19:35:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20global=20css?= =?UTF-8?q?=20=E7=9A=84=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/fes-preset-built-in/src/index.js | 1 + .../src/plugins/features/globalCSS.js | 25 +++++++++++++++++++ packages/fes-template/src/global.css | 0 3 files changed, 26 insertions(+) create mode 100644 packages/fes-preset-built-in/src/plugins/features/globalCSS.js create mode 100644 packages/fes-template/src/global.css diff --git a/packages/fes-preset-built-in/src/index.js b/packages/fes-preset-built-in/src/index.js index 9da9ca76..83060016 100644 --- a/packages/fes-preset-built-in/src/index.js +++ b/packages/fes-preset-built-in/src/index.js @@ -28,6 +28,7 @@ export default function () { require.resolve('./plugins/features/extraBabelPresets'), require.resolve('./plugins/features/extraPostCSSPlugins'), require.resolve('./plugins/features/html'), + require.resolve('./plugins/features/globalCSS'), require.resolve('./plugins/features/inlineLimit'), require.resolve('./plugins/features/lessLoader'), require.resolve('./plugins/features/mountElementId'), diff --git a/packages/fes-preset-built-in/src/plugins/features/globalCSS.js b/packages/fes-preset-built-in/src/plugins/features/globalCSS.js new file mode 100644 index 00000000..0e12c756 --- /dev/null +++ b/packages/fes-preset-built-in/src/plugins/features/globalCSS.js @@ -0,0 +1,25 @@ +import { relative, join } from 'path'; +import { existsSync } from 'fs'; + +export default (api) => { + const { + paths, + utils: { winPath } + } = api; + const { absSrcPath = '', absTmpPath = '' } = paths; + const files = [ + 'global.css', + 'global.less', + 'global.stylus' + ]; + const globalCSSFile = files + .map(file => join(absSrcPath || '', file)) + .filter(file => existsSync(file)) + .slice(0, 1); + + api.addEntryCodeAhead( + () => `${globalCSSFile + .map(file => `require('${winPath(relative(absTmpPath, file))}');`) + .join('')}` + ); +}; diff --git a/packages/fes-template/src/global.css b/packages/fes-template/src/global.css new file mode 100644 index 00000000..e69de29b