ошибка storyshots - не удалось найти модуль ./src/common, отображаемый как
Я только что установил @storybook/addon-storyshots и, следуя их инструкциям, поместил его в корень.
src / Storyshots.test.ts
import initStoryshots from '@storybook/addon-storyshots';
initStoryshots();
Когда я запускаю тесты, все мои существующие тесты проходят, но он не работает в этом файле - StoryShots.test.ts с ошибкой:
Ошибка:
FAIL src/Storyshots.test.ts
Test suite failed to run
Configuration error:
Could not locate module ./src/common mapped as:
C:\apps\vanilla\storybook-examples\src\$1.
Please check your configuration for these entries:
{
"moduleNameMapper": {
"/src\/(.*)/": "C:\apps\vanilla\storybook-examples\src\$1"
},
"resolver": undefined
}
at createNoMappedModuleFoundError (node_modules/jest-resolve/build/index.js:552:17)
at Object.<anonymous> (node_modules/shelljs/shell.js:9:14)
В моем проекте есть разрешение модуля, и там все работает. См. Пример разрешения модуля для моего проекта:
tsconfig.json
{
...
"compilerOptions": {
"baseUrl": "./",
},
"include": [
"src/**/*", "@types", "stories"
]
}
.babelrc
{
"plugins": [
...
["module-resolver", {
"extensions": [".js", ".jsx", ".ts", ".tsx"],
"root": ["./"],
"alias": {
"src": "./src"
}
}]
]
}
webpack.config.dev.js
const src = path.join(__dirname, '/src');
module.exports = {
...
resolve: {
modules: [src, 'node_modules'],
extensions: ['.ts', '.tsx', '.js', '.jsx', '.scss'],
// fix module resolver for typescript !!!
alias: {
src
}
},
Я просто не установил ничего из этого в папке.storybook - .storybook/. Я не уверен, как работает разрешение сборника рассказов или почему он ищет папку common/. У меня нет общей папки.
Это пример одной из моих историй:
Basic.stories.tsx
import React from 'react';
import Basic from 'src/Components/Basic/Basic';
export const BasicHelloWorld = () => <Basic {...{ title: 'hello world' }} />;
export default { title: 'Basic' };
Это мой сборник рассказов main.js
main.js
module.exports = {
stories: ['../**/*.stories.tsx', '../**/**/*.stories.tsx'],
addons: [
'@storybook/addon-actions',
'@storybook/addon-links',
]
};
Оцените любые предложения. Благодарность
1 ответ
Оказывается, единственное, что я не включил в приведенные выше конфигурации, - это файл jest.config.js.
Оказывается, причиной этой проблемы было следующее:
jest.config.js! сломанный
moduleNameMapper: {
'src/(.*)': '<rootDir>/src/$1',
...
},
Сегодня я решил избавиться от всего, и в процессе наткнулся на примеры конфигурации ts-jest, где регулярное выражение имело точный путь, то есть начиналось с ^ и заканчивалось на $, то есть не совпадение.
Не то чтобы я особо об этом думал или почему он сломает только storyshots и ничего больше, кроме всего, что касается сопоставления файлов и разрешений, я думал, что стоит обеспечить точность. Я обновил свое регулярное выражение в соответствии с указанными выше путями и BINGO - БОЛЬШЕ НЕТ ОШИБКИ!!! ХАХАХ. Хорошая удача.
jest.config.js £ исправлен
moduleNameMapper: {
'^src/(.*)$': '<rootDir>/src/$1'
...
},