找不到带有 .scss 文件的流模块
Flow module not found with .scss file
我有一个使用 scss 和 css 模块的文件,如下所示:
import styles from './Login.scss';
webpack 构建工作正常,但我遇到了一个流程错误:Required Module Not Found
在我的 .flowconfig 中我有
[ignore]
.*/node_modules/fbjs/.*
.*/app/main.js
.*/app/dist/.*
.*/release/.*
.*/git/.*
[include]
[libs]
[options]
esproposal.class_static_fields=enable
esproposal.class_instance_fields=enable
esproposal.export_star_as=enable
module.name_mapper.extension='css' -> '<PROJECT_ROOT>/flow/CSSModule.js.flow'
module.name_mapper.extension='styl' -> '<PROJECT_ROOT>/flow/CSSModule.js.flow'
module.name_mapper.extension='png' -> '<PROJECT_ROOT>/flow/WebpackAsset.js.flow'
module.name_mapper.extension='jpg' -> '<PROJECT_ROOT>/flow/WebpackAsset.js.flow'
suppress_comment=\(.\|\n\)*\$FlowFixMe
suppress_comment=\(.\|\n\)*\$FlowIssue
我也看到了https://github.com/facebook/flow/issues/338,但确实没有任何解决办法。
有没有人找到解决此问题的方法?
可以通过将 .scss 文件分配给空模块来修复此错误。我只是将 npm 安装为空并将其添加到 .flowconfig 中:
module.name_mapper.extension='scss' -> 'empty/object'
此错误的更好解决方案是使用 css-modules-flow-types webpack 插件为您的 CSS 模块生成流类型。
Flow 不知道 scss
扩展名,因此您需要将以下内容添加到 .flowconfig
的 [options]
部分:
; Extensions
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.json
module.file_ext=.css
module.file_ext=.scss
您还应该将 *.scss.flow
添加到您的 .gitignore
。不应签入这些文件,因为它们是在 webpack 构建期间自动生成的。
在 .flowconfig 文件中添加了我希望流程识别的所有文件类型
[options]
module.file_ext=.js
module.file_ext=.json
module.file_ext=.jsx
module.file_ext=.css
module.file_ext=.scss
我们可以使用 module.name_mapper.extension 替换 Object
上导入模块的类型
module.name_mapper.extension - Specify a file extension to match, and a replacement module name,
separated by a ->.
向 .flowconfig
文件添加选项
// .flowconfig
[options]
module.name_mapper.extension='scss' -> '<PROJECT_ROOT>/flowconfig.mock-module.js'
创建新文件
// flowconfig.mock-module.js
export default Object;
我有一个使用 scss 和 css 模块的文件,如下所示:
import styles from './Login.scss';
webpack 构建工作正常,但我遇到了一个流程错误:Required Module Not Found
在我的 .flowconfig 中我有
[ignore]
.*/node_modules/fbjs/.*
.*/app/main.js
.*/app/dist/.*
.*/release/.*
.*/git/.*
[include]
[libs]
[options]
esproposal.class_static_fields=enable
esproposal.class_instance_fields=enable
esproposal.export_star_as=enable
module.name_mapper.extension='css' -> '<PROJECT_ROOT>/flow/CSSModule.js.flow'
module.name_mapper.extension='styl' -> '<PROJECT_ROOT>/flow/CSSModule.js.flow'
module.name_mapper.extension='png' -> '<PROJECT_ROOT>/flow/WebpackAsset.js.flow'
module.name_mapper.extension='jpg' -> '<PROJECT_ROOT>/flow/WebpackAsset.js.flow'
suppress_comment=\(.\|\n\)*\$FlowFixMe
suppress_comment=\(.\|\n\)*\$FlowIssue
我也看到了https://github.com/facebook/flow/issues/338,但确实没有任何解决办法。
有没有人找到解决此问题的方法?
可以通过将 .scss 文件分配给空模块来修复此错误。我只是将 npm 安装为空并将其添加到 .flowconfig 中:
module.name_mapper.extension='scss' -> 'empty/object'
此错误的更好解决方案是使用 css-modules-flow-types webpack 插件为您的 CSS 模块生成流类型。
Flow 不知道 scss
扩展名,因此您需要将以下内容添加到 .flowconfig
的 [options]
部分:
; Extensions
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.json
module.file_ext=.css
module.file_ext=.scss
您还应该将 *.scss.flow
添加到您的 .gitignore
。不应签入这些文件,因为它们是在 webpack 构建期间自动生成的。
在 .flowconfig 文件中添加了我希望流程识别的所有文件类型
[options]
module.file_ext=.js
module.file_ext=.json
module.file_ext=.jsx
module.file_ext=.css
module.file_ext=.scss
我们可以使用 module.name_mapper.extension 替换 Object
module.name_mapper.extension - Specify a file extension to match, and a replacement module name, separated by a ->.
向 .flowconfig
文件添加选项
// .flowconfig
[options]
module.name_mapper.extension='scss' -> '<PROJECT_ROOT>/flowconfig.mock-module.js'
创建新文件
// flowconfig.mock-module.js
export default Object;