使用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
答案 0 :(得分:3)
您在module.name_mapper
中使用的正则表达式与constants/ServiceURI
不匹配。它只与constants
完全匹配。您还需要匹配constants
之后的任何内容,以便能够解析constants
目录中的所有模块。
module.name_mapper='^constants/\(.*\)$' -> '<PROJECT_ROOT>/src/js/constants/\1'
\(
和\)
创建捕获组(需要斜杠),您可以将其称为\1
。有关详细信息,请参阅module.name_mapper。