Добавьте это в поток конфигурации
[options]
module.name_mapper.extension='css' -> '<PROJECT_ROOT>/CSSModuleStub.js'
И добавить создать файл в корневом каталоге CSSModuleStub.js
:
// @flow
type CSSModule = { [key: string]: string }
const emptyCSSModule: CSSModule = {}
export default emptyCSSModule
Если вы хотите чистый путь, вы можете настроить, как это
[options]
module.name_mapper.extension='css' -> '<PROJECT_ROOT>/flow/stub/css-modules.js'
И поэтому переименовать CSSModuleStub.js
в flow/stub/css-modules.js
.
В то время как мы в этом, если вам нужны какие-то другие корешки (например: для url-loader
) вот другой пример
Создать flow/stub/url-loader.js
// @flow
const s: string = ""
export default s
И добавить
module.name_mapper='.*\.\(svg\|png\|jpg\|gif\)$' -> '<PROJECT_ROOT>/flow/stub/url-loader.js'
, если вы используете url-loader
для svg, png, jpg и gif. Это позволит Flow сделать правильные замены модуля (URL-загрузчик возвращает строку (base64 или файл-загрузчик путь).
Например, если вы
import logoSVG from "./logo.png"
logoSVG.blah.stuff() // <-- flow will throw here
Flow выдаст ошибку.
Это супер полезно, было бы здорово иметь это связано с официальными документами. – ctrlplusb
Есть ли способ решить эту проблему, если в 'import' /' require' не предусмотрено расширение файла? – Victor
@ctrlplusb, теперь это в официальных документах [здесь] (https://flow.org/en/docs/config/options/#toc-module-name-mapper-regex-string) – Victor