Storybook的模拟TypeScript导入



我正试图模拟导入Storybook中使用的模块,但我只能使用JavaScript和CJS导入,而不能使用TypeScript和ESM。我当前的webpackFinal包含此

config.resolve.alias['moduleToMock'] = require.resolve('../src/mocks/mockModule')
return config;

当前的配置不适用于TypeScript,并且会抛出一个错误,指出找不到mock模块。如何将其配置为使用TypeScript?

通常,TypeScript只在您试图编译代码时抛出错误。如果您在代码执行中遇到错误,这很可能与代码重写有关。如果Storybook的webpackFinal已经支持ESM,并且您需要同步导入模块,那么您可以创建一个所需功能的替代品,如下所示:

import { createRequire } from 'module'
const require = createRequire(import.meta.url)
...
config.resolve.alias['moduleToMock'] = require.resolve('../src/mocks/mockModule')

希望能有所帮助。

最新更新