joh*_*yan 8 sass webpack flowtype css-modules
我有一个文件使用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
Run Code Online (Sandbox Code Playgroud)
我也看过https://github.com/facebook/flow/issues/338但它确实没有任何解决方案.
有没有人找到解决这个问题的方法?
ndb*_*ent 14
更好的解决方案是使用css-modules-flow-types webpack插件为CSS模块生成流类型.
流程不知道的scss扩展,所以你需要添加以下到您.flowconfig,在[options]部分:
; Extensions
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.json
module.file_ext=.css
module.file_ext=.scss
Run Code Online (Sandbox Code Playgroud)
你也应该加入*.scss.flow你的.gitignore.不应检入这些文件,因为它们是在webpack构建期间自动生成的.
小智 8
在 .flowconfig 文件中添加了我希望流识别的所有文件类型
[options]
module.file_ext=.js
module.file_ext=.json
module.file_ext=.jsx
module.file_ext=.css
module.file_ext=.scss
Run Code Online (Sandbox Code Playgroud)
通过将.scss文件分配给空模块可以修复此错误.我只是将npm安装为空并将其添加到.flowconfig:
module.name_mapper.extension='scss' -> 'empty/object'
我们可以使用module.name_mapper.extension来替换导入模块的类型Object
module.name_mapper.extension - 指定要匹配的文件扩展名和替换模块名称,用 -> 分隔。
添加选项到.flowconfig文件
// .flowconfig
[options]
module.name_mapper.extension='scss' -> '<PROJECT_ROOT>/flowconfig.mock-module.js'
Run Code Online (Sandbox Code Playgroud)
创建新文件
// flowconfig.mock-module.js
export default Object;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3250 次 |
| 最近记录: |