Сборник рассказов с Craco - вызовите другую версию сценариев реакции
Сказочная книга сейчас звонит react-scripts
. Однако у меня есть некоторые части конфигурации CRA, переопределенные с помощьюcraco
. Это означает, что мое приложение вызывается сcraco ...
, скорее, чем react-scripts ...
.
Есть ли чистое решение для вызова Storybook craco
вместо?
4 ответа
Решение, которое я придумал, таково:
.storybook / main.js:
const path = require('path');
module.exports = {
stories: ['../src/**/*.stories.js'],
addons: [
'@storybook/preset-create-react-app',
'@storybook/addon-actions',
'@storybook/addon-links',
'@storybook/addon-viewport/register',
'@storybook/addon-knobs/register',
],
webpackFinal(config, { configType }) {
return {
...config,
resolve: {
alias: {
...config.resolve.alias,
'~': path.resolve(__dirname, '../src/'),
},
},
};
},
};
Я использовал только функцию псевдонима в моем файле Craco, поэтому здесь я переопределяю конфигурацию webpack из сборника рассказов и добавляю только параметр псевдонима. В вашем случае вам нужно будет добавить свой собственный config.
Решение @FR073N хорошее, но, начиная с последних версий, выдает ошибку.
Отсутствовала одна строка, чтобы полностью переопределить конфигурацию веб-пакета.
const path = require('path');
module.exports = {
stories: ['../src/**/*.stories.js'],
addons: [
'@storybook/preset-create-react-app',
'@storybook/addon-actions',
'@storybook/addon-links',
'@storybook/addon-viewport/register',
'@storybook/addon-knobs/register',
],
webpackFinal(config, { configType }) {
return {
...config,
resolve: {
...config.resolve, // <= HERE
alias: {
...config.resolve.alias,
'~': path.resolve(__dirname, '../src/'),
},
},
};
},
};
как сказал Ник Рибал, я успешно использовал storybook-preset-craco с @ и и @craco/ [электронная почта защищена][электронная почта защищена][электронная почта защищена] в новом проекте CRA TypeScript. работал со мной как шарм
Я успешно использовал Storybook-Preset-Craco с
@storybook@6.3.5
и
react-scripts@4.0.3
и
@craco/craco@6.2.0
в новом проекте CRA TypeScript.