docs/_snippets/module-aliases-config.md
export default {
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs-vite, vue3-vite, etc.
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
};
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs-vite, vue3-vite, etc.
import type { StorybookConfig } from '@storybook/your-framework';
const config: StorybookConfig = {
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
};
export default config;
export default {
// Replace your-framework with the framework you are using (e.g., nextjs, react-webpack5)
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
webpackFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api$': import.meta.resolve('./api.mock.ts'),
'@/app/actions$': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session$': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db$': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
};
// Replace your-framework with the framework you are using (e.g., nextjs, react-webpack5)
import type { StorybookConfig } from '@storybook/your-framework';
const config: StorybookConfig = {
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
webpackFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api$': import.meta.resolve('./api.mock.ts'),
'@/app/actions$': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session$': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db$': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
};
export default config;
// Replace your-framework with the framework you are using (e.g., react-vite, nextjs-vite)
import { defineMain } from '@storybook/your-framework/node';
export default defineMain({
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
// Replace your-framework with the framework you are using (e.g., react-vite, nextjs-vite)
import { defineMain } from '@storybook/your-framework/node';
export default defineMain({
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
// Replace your-framework with the framework you are using (e.g., nextjs, react-webpack5)
import { defineMain } from '@storybook/your-framework/node';
export default defineMain({
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
webpackFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api$': import.meta.resolve('./api.mock.ts'),
'@/app/actions$': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session$': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db$': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
// Replace your-framework with the framework you are using (e.g., nextjs, react-webpack5)
import { defineMain } from '@storybook/your-framework/node';
export default defineMain({
framework: '@storybook/your-framework',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
webpackFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api$': import.meta.resolve('./api.mock.ts'),
'@/app/actions$': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session$': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db$': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
import { defineMain } from '@storybook/vue3-vite/node';
export default defineMain({
framework: '@storybook/vue3-vite',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
import { defineMain } from '@storybook/vue3-vite/node';
export default defineMain({
framework: '@storybook/vue3-vite',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
import { defineMain } from '@storybook/angular/node';
export default defineMain({
framework: '@storybook/angular',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
webpackFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api$': import.meta.resolve('./api.mock.ts'),
'@/app/actions$': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session$': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db$': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
import { defineMain } from '@storybook/angular/node';
export default defineMain({
framework: '@storybook/angular',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
webpackFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api$': import.meta.resolve('./api.mock.ts'),
'@/app/actions$': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session$': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db$': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
import { defineMain } from '@storybook/web-components-vite/node';
export default defineMain({
framework: '@storybook/web-components-vite',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});
import { defineMain } from '@storybook/web-components-vite/node';
export default defineMain({
framework: '@storybook/web-components-vite',
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
viteFinal: async (config) => {
if (config.resolve) {
config.resolve.alias = {
...config.resolve?.alias,
// ๐ External module
lodash: import.meta.resolve('./lodash.mock'),
// ๐ Internal modules
'@/api': import.meta.resolve('./api.mock.ts'),
'@/app/actions': import.meta.resolve('./app/actions.mock.ts'),
'@/lib/session': import.meta.resolve('./lib/session.mock.ts'),
'@/lib/db': import.meta.resolve('./lib/db.mock.ts'),
};
}
return config;
},
});