流不能识别Webpack别名

时间:2018-05-24 01:09:14

标签: webpack eslint flow

我在使用webpack别名时遇到了一些麻烦,并且让它与流程很好地配合使用。

我有别名:

    alias: {
        vue$: 'vue/dist/vue.esm.js',
        puma: path.resolve(__dirname, 'assets/app/stores/clothes'),
    },

我在我的组件中通过导入这样使用它:

     import components from "puma/components"

对于我的flowconfig,我将其设置为:

 module.name_mapper='^puma\/.*' -> 'puma/\1'

我真的不确定这种OCaml类型的正则表达式如何工作......我需要帮助。

这篇文章的最终目的是能够解决错误:

     ^^^^^^^^^^^^^^^^ puma. Required module not found

1 个答案:

答案 0 :(得分:0)

想出来了!

我只是不太了解name_mapper中发生了什么,我仍然没有完全理解它,但我的猜测是:< / p>

flow解析你的文件,然后当它进入导入时,我认为它会对其name_mappers进行一些检查,看看导入语法是别名还是需要映射到别的东西。在这种情况下,当它到达puma时,代码库中没有名为puma的目录,但name_mapper中恰好有.flowconfig符合其正则表达式,所以它沿着映射路径向下移动到assets/app/puma/clothes

我申请的正则表达式并不正确,我最终使用了类似module.name_mapper='^puma' -> 'assets/app/stores/clothes'之类的东西来让它发挥作用。

我有一个问题......这对性能有多大影响?现在流量是否检查name_mapper的每次导入,看看是否有映射?添加新的name_mapper会大大降低流的解析速度吗?

如果有人知道,我听到它会非常好奇。