mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			135 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const AliasPlugin = require('enhanced-resolve/lib/AliasPlugin');
 | 
						|
 | 
						|
module.exports = {
 | 
						|
    stories: [
 | 
						|
        '../src/**/*.stories.mdx',
 | 
						|
        '../src/**/*.stories.@(js|jsx|ts|tsx)',
 | 
						|
    ],
 | 
						|
    addons: [
 | 
						|
        '@storybook/addon-links',
 | 
						|
        '@storybook/addon-essentials',
 | 
						|
        '@storybook/addon-interactions',
 | 
						|
        'storybook-addon-root-attribute/register',
 | 
						|
    ],
 | 
						|
    framework: '@storybook/react',
 | 
						|
    staticDirs: [
 | 
						|
        {
 | 
						|
            from: '../static',
 | 
						|
            to: '/',
 | 
						|
        },
 | 
						|
    ],
 | 
						|
    webpackFinal: async (config) => {
 | 
						|
        const path = require('path');
 | 
						|
 | 
						|
        const docusaurusPath = (...paths) =>
 | 
						|
            path.resolve(
 | 
						|
                __dirname,
 | 
						|
                '../',
 | 
						|
                'node_modules',
 | 
						|
                '@docusaurus',
 | 
						|
                ...paths,
 | 
						|
            );
 | 
						|
 | 
						|
        config.resolve.plugins = [
 | 
						|
            // add a "layered" approach to theme resolution that matches
 | 
						|
            // Docusaurus' theme resolution:
 | 
						|
            // https://docusaurus.io/docs/2.0.0-beta.17/advanced/client#theme-aliases
 | 
						|
            //
 | 
						|
            // First, check to see if the referenced component has
 | 
						|
            // been swizzled and exists in `../src/theme`.
 | 
						|
            //
 | 
						|
            // If it's not there, check the `theme-classic/lib-next/theme` directory in
 | 
						|
            // `node_modules`.
 | 
						|
            //
 | 
						|
            // Finally, if it's not found anywhere else, check the
 | 
						|
            // `theme-fallback` directory.
 | 
						|
            new AliasPlugin(
 | 
						|
                'described-resolve',
 | 
						|
                [
 | 
						|
                    {
 | 
						|
                        name: '@theme',
 | 
						|
                        alias: [
 | 
						|
                            path.resolve(__dirname, '../', 'src', 'theme'),
 | 
						|
                            docusaurusPath(
 | 
						|
                                'theme-classic',
 | 
						|
                                'lib-next',
 | 
						|
                                'theme',
 | 
						|
                            ),
 | 
						|
                            docusaurusPath(
 | 
						|
                                'core',
 | 
						|
                                'lib',
 | 
						|
                                'client',
 | 
						|
                                'theme-fallback',
 | 
						|
                            ),
 | 
						|
                        ],
 | 
						|
                    },
 | 
						|
                ],
 | 
						|
                'resolve',
 | 
						|
            ),
 | 
						|
        ];
 | 
						|
 | 
						|
        config.resolve.alias = {
 | 
						|
            ...config.resolve.alias,
 | 
						|
            '@site': path.resolve(__dirname, '../'),
 | 
						|
            '@docusaurus/theme-common': docusaurusPath(
 | 
						|
                'theme-common',
 | 
						|
                'src',
 | 
						|
                'index.ts',
 | 
						|
            ),
 | 
						|
            '@docusaurus/utils-common': docusaurusPath('utils-common', 'lib'),
 | 
						|
            '@docusaurus/plugin-content-docs': docusaurusPath(
 | 
						|
                'plugin-content-docs',
 | 
						|
                'src',
 | 
						|
            ),
 | 
						|
            '@docusaurus': docusaurusPath('core', 'lib', 'client', 'exports'),
 | 
						|
            '@generated': path.resolve(__dirname, '../', '.docusaurus'),
 | 
						|
        };
 | 
						|
 | 
						|
        let cssRules = [];
 | 
						|
        const rules = config.module.rules.map((rule) => {
 | 
						|
            if (rule.test.toString() === '/\\.css$/') {
 | 
						|
                cssRules.push(JSON.parse(JSON.stringify(rule)));
 | 
						|
 | 
						|
                return {
 | 
						|
                    ...rule,
 | 
						|
                    exclude: /\.module\.css$/,
 | 
						|
                };
 | 
						|
            } else if (rule.test.toString() === '/\\.(mjs|tsx?|jsx?)$/') {
 | 
						|
                return {
 | 
						|
                    ...rule,
 | 
						|
                    // don't exclude docusaurus files
 | 
						|
                    exclude: /node_modules\/(?!@docusaurus)/,
 | 
						|
                };
 | 
						|
            } else return rule;
 | 
						|
        });
 | 
						|
 | 
						|
        cssRules.forEach((r) => {
 | 
						|
            const moduleRule = {
 | 
						|
                ...r,
 | 
						|
                test: /\.module\.css$/,
 | 
						|
                use: r.use.map((use) => {
 | 
						|
                    if (
 | 
						|
                        typeof use === 'object' &&
 | 
						|
                        use.loader.includes('/css-loader/')
 | 
						|
                    ) {
 | 
						|
                        use.options = {
 | 
						|
                            ...use.options,
 | 
						|
                            modules: true,
 | 
						|
                        };
 | 
						|
                    }
 | 
						|
                    return use;
 | 
						|
                }),
 | 
						|
            };
 | 
						|
            rules.push(moduleRule);
 | 
						|
        });
 | 
						|
 | 
						|
        return {
 | 
						|
            ...config,
 | 
						|
            module: {
 | 
						|
                ...config.module,
 | 
						|
                rules,
 | 
						|
            },
 | 
						|
        };
 | 
						|
    },
 | 
						|
};
 |