#vue.js #mocking #storybook
#vue.js #издевательство #сборник рассказов
Вопрос:
У меня есть компонент Vue, который включает в себя несколько внешних модулей со сложной логикой. Например:
// Component.vue
import Vue from 'vue';
import { externalModule } from '@/path/to/module';
export default {
methods: {
useExternalModule() {
externalModule.doSomethig();
}
}
};
Возможно ли высмеять externalModule
то, что происходит внутри истории?
Я использую Storybook v6.
Ответ №1:
Вы можете создать __mocks__
папку для размещения ваших макетных компонентов. Затем в вашем .storybook/main.js
файле используйте это, чтобы указать webpack на ваш макет файла.
module.exports = {
// your Storybook configuration
webpackFinal: (config) => {
config.resolve.alias['externalModule'] = require.resolve('../__mocks__/externalModule.js');
return config;
},
};
Это описано в документации в разделе «Имитационный импорт».
Однако это глобальная конфигурация, а не конфигурация на уровне истории.
Комментарии:
1. Чтобы автоматически издеваться над всеми node_modules, у которых есть макет вручную (это означает, что в корневом каталоге есть
__mocks__
соответствующий ему каталог), я переопределилconfig.resolve.modules
свойство:config.resolve.modules = [path.resolve(__dirname, "../__mocks__"), ...config.resolve.modules]