2017-07-27 42 views
0

工作下面是一个具有降低的情况下的存储库:
https://github.com/bjohn465/flow-name_mapper-test/tree/3c17d1a4b9963412787b0c9e3a0ffaf51e471fb4module.name_mapper.extension流程选择不是MP3

我要播放音频文件,在这种情况下,MP3文件,使用音频元素。

我已配置webpack使用文件加载器来加载MP3文件。该加载程序会将文件复制到输出目录并将公共URL返回到该文件。因此,在import sound from './bell.mp3'之后,sound将是一个带有指向MP3文件的URL的字符串。

.flowconfig看起来是这样的:

[options] 
module.name_mapper.extension='mp3' -> '<PROJECT_ROOT>/flow-typed/mp3-stub.js' 

mp3-stub.js看起来是这样的:

// @flow 
const s: string = '' 
export default s 

从我已经能够找到,这应该工作,但是当我运行流程,我仍然收到“找不到需要的模块”错误:

Error: src/audio-player.js:3 
3: import sound from './bell.mp3' 
        ^^^^^^^^^^^^ ./bell.mp3. Required module not found 

回答

0

看来问题出在存根文件的位置(mp3-stub.js)。我把从flow-typed存根flow-stubs,并更新了.flowconfig

[options] 
module.name_mapper.extension='mp3' -> '<PROJECT_ROOT>/flow-stubs/mp3-stub.js' 

我假设,因为流量使用flow-typed目录library definitions (or "libdefs")在默认情况下,它并没有像存根在该目录中。

减少的情况下固定的版本可以在这里找到:
https://github.com/bjohn465/flow-name_mapper-test/tree/335456fac80dd452469645930535861a91c3c4c7

1

您是否试过使用正则表达式而不是扩展名使用name_mapper?

module.name_mapper='^\(.*\)\.mp3$' -> './flow-typed/mp3-stub.js' 
+0

是的,它仍然错误。 – bjohn465