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