是否可以将webpack配置为执行以下等效操作:
babel src --watch --out-dir lib
这样的目录结构看起来像这样:
- src
- alpha
- beta.js
- charlie
- delta.js
- echo.js
- foxtrot
- golf
- hotel.js
将所有文件编译到ES5,并在lib
目录下以相同的结构输出它们:
- lib
- alpha
- beta.js
- charlie
- delta.js
- echo.js
- foxtrot
- golf
- hotel.js
我尝试了全局绑定所有文件路径并将它们作为单独的条目传入,但似乎webpack在定义输出文件时“忘记”了文件的位置。Output.path
只提供[hash]
标记,而Output.file
有更多选项,但只提供[name]
、[hash]
和[chunk]
,因此至少看起来,不支持这种编译。
为了给我的问题提供一些背景信息,我创建了一个由React组件及其相关样式组成的npm模块,我使用的是CSS模块,所以我需要一种方法来将JavaScript和CSS编译到模块的lib目录中。
2条答案
按热度按时间u3r8eeie1#
如果要输出到多个目录,可以使用路径作为条目名称。
因此,您可以使用函数为您生成满足上述条件的条目列表:
ukqbszuj2#
看起来这个插件transpile-webpack-plugin解决了这个问题。你可以设置如下:
然后,该插件收集
./src/alpha/beta.js
直接或间接导入的所有文件,并在lib
中单独生成输出文件,这是一种文件到文件的传输,既保留了文件名,又保留了目录结构。顺便说一句,如果在webpack配置中指定多个命名条目和输出文件名
[name]
,输出将是多个捆绑包,每个捆绑包包含所有直接和间接导入,并且不能相互交互。实际上它与babel
命令不一样...🙂