找不到流量所需的模块

时间:2017-05-23 08:50:01

标签: reactjs webpack flowtype

使用Webpack 2,Flow 0.46.0

我正在开发一个非常大的应用程序,因此使用Webpack解析模块来创建别名导入名称,例如'../../../../constants/ServiceURI'到'常数/ ServiceURI'

在添加流量之前,一切正常。必须有一种方法可以使用mapper或resolve_dirname来解决这个问题,但我无法弄清楚如何解决这个问题。无论我做什么,都会打破流量。

我真的想使用flow,但这对我来说是个阻碍。

项目结构:

./flowconfig
./webpack.config.js
./src
    /js
        /constants
        /actions
        /...
    /css

Webpack配置如下:

resolve: {
        modules: [
            path.resolve('./src/js'),
            path.resolve('./src/js/constants'),
            'node_modules'
        ],
        extensions: ['.js', '.jsx']

Flow配置如下:

[ignore]
.*/node_modules/*

[include]
<PROJECT_ROOT>/src/js/

[libs]

[options]
esproposal.class_static_fields=enable
esproposal.class_instance_fields=enable
esproposal.export_star_as=enable
esproposal.decorators=ignore

# Tried this
module.name_mapper='^constants$' -> '<PROJECT_ROOT>/src/js/constants'

# Tried using this too
module.system.node.resolve_dirname=./src/js

module.system=haste
munge_underscores=true

[version]
0.46.0

流量错误:

rc/js/actions/ActionActivity.js:6
  6: import { ACTIVITY_API } from 'constants/ServiceURI'
                                  ^^^^^^^^^^^^^^^^^^^^^^ 
constants/ServiceURI. Required module not found

1 个答案:

答案 0 :(得分:3)

您在module.name_mapper中使用的正则表达式与constants/ServiceURI不匹配。它只与constants完全匹配。您还需要匹配constants之后的任何内容,以便能够解析constants目录中的所有模块。

module.name_mapper='^constants/\(.*\)$' -> '<PROJECT_ROOT>/src/js/constants/\1'

\(\)创建捕获组(需要斜杠),您可以将其称为\1。有关详细信息,请参阅module.name_mapper