dam*_*amd 3 javascript webpack flowtype
我使用 Webpack 使用 Flow 类型构建我的 React 项目。我已经将 Webpack 配置为使用svg-sprite-loader导入 SVG 文件,如下所示:
{
test: /\.svg$/,
loader: ['svg-sprite-loader']
}
Run Code Online (Sandbox Code Playgroud)
这使我可以“导入”SVG 文件,如下所示:
import letterCellSymbol from '../styles/icons/tool-letter.svg'
Run Code Online (Sandbox Code Playgroud)
然后我可以像这样使用我的 React 组件中的文件:
<svg className="icon">
<use xlinkHref={`#${letterCellSymbol.id}`} />
</svg>
Run Code Online (Sandbox Code Playgroud)
这当然会导致 Flow 类型检查出现问题:
Error: src/components/Toolbox.jsx:70
70: <use xlinkHref={`#${letterCellSymbol.id}`} />
^^ property `id`. Property not found in
70: <use xlinkHref={`#${letterCellSymbol.id}`} />
^^^^^^^^^^^^^^^^ String
Run Code Online (Sandbox Code Playgroud)
告诉 Flow 这些 SVG 文件使用类型导出对象{id: string}或完全忽略这些错误的正确方法是什么?
我编辑了我的.flowconfig文件以包括:
[options]
module.name_mapper.extension='svg' -> '<PROJECT_ROOT>/src/helpers/SVGModule.js'
Run Code Online (Sandbox Code Playgroud)
然后我创建了文件./src/helpers/SVGModule.js并输入:
/* @flow */
export default { id: '' }
Run Code Online (Sandbox Code Playgroud)
这使得 Flow 认为任何以.svgexports结尾的导入/需要的文件{id:''},因此错误被忽略。缺点是不存在的文件不会报告为错误。
帮助我解决这个问题的来源:
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |