【问题标题】:Flow “Required module not found” when importing a CSS file导入 CSS 文件时出现“找不到所需模块”的流程
【发布时间】:2016-08-23 02:24:10
【问题描述】:

当我尝试通过 webpack(import (./index.css)) 导入 CSS 时,出现此错误:

3: import './index.css';
          ^^^^^^^^^^^^^ ./index.css. Required module not found

我有一个像ComponentName→(index.js, index.css)这样的结构,这样每个组件里面都有所有的依赖。

我尝试了this hack,但它对我不起作用。我可以忽略它吗?

【问题讨论】:

    标签: flowtype


    【解决方案1】:

    为了不必为每个项目声明 CSSModule,我发布了一个这样做的 npm 包:

    https://www.npmjs.com/package/css-module-flow

    https://github.com/ckknight/css-module-flow

    【讨论】:

      【解决方案2】:

      感谢@MoOx,这太棒了!!关于 webpack 包加载器的存根有什么建议吗?

      我在想这样的事情......

      module.name_mapper='^bundle?[a-zA-Z0-9$_]+$' -> '<PROJECT_ROOT>/flow/stubs/bundle-loader.js.flow'
      
      require('bundle?lazy&name=bundleName!path/to/file')
      

      【讨论】:

      • 对不起,我对 bundle-loader 不熟悉:/
      • 我正在为 bundle-loader 做的是:module.name_mapper='bundle.*?\!\(.*\)'-&gt;'\1'。烦人的部分是,对于我们映射的其他别名,我可能必须使用捆绑器添加另一个版本。
      【解决方案3】:

      将此添加到您的流程配置中

      [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'
      

      如果您对 svg、png、jpg 和 gif 使用 url-loader。这将允许 Flow 进行正确的模块替换(url-loader 返回一个字符串(base64 或文件加载器路径)。

      例如,如果你这样做

      import logoSVG from "./logo.png"
      logoSVG.blah.stuff() // <-- flow will throw here
      

      Flow 会抛出错误。

      【讨论】:

      • 这非常有用,如果能从官方文档中引用它会很棒。
      • 如果import/require中没有提供文件扩展名,有没有办法处理这个问题?
      • @ctrlplusb,这现在在官方文档中here
      猜你喜欢
      • 2017-10-23
      • 2017-10-02
      • 1970-01-01
      • 2017-06-29
      • 2020-09-13
      • 2018-02-06
      • 2021-07-04
      • 1970-01-01
      • 2021-12-03
      相关资源
      最近更新 更多