2016-10-11 137 views
0

目前,我们只能为整个模块提供webpack支持别名,但我想让webpack自动将具有一个扩展名的所有文件映射到另一个扩展名。防爆如何使webpack支持扩展别名

src 
| style.less 
| main.js 

main.js,如果我做

import './style.css' 

与以下配置(应该是)

resoloveExtensions: { 
    css: ['css', 'less'] 
} 

的WebPack将皮卡style.less,转换并返回

是有什么办法可以做到这一点?

回答

0

resolveExtensions不被用作'替代'扩展名,但是被用作当没有提供扩展名时的扩展名。

首先,您通常要保留默认值["", ".webpack.js", ".web.js", ".js"]。在这种情况下,您想要添加两个:["", ".webpack.js", ".web.js", ".js", ".css", ".less"]

在此之后,您可以从main.js需要style.less这样的:import './style';。然后Webpack将尝试找到名称为style和resolveExtensions中的任何扩展名的文件!

+0

我明白这一点,并一直这样做,但我真正想要的更像是扩展映射,从'css'映射到'[css,less]''。因此,如果我这样做,'import',/ style''或'import'。/ style.css'',结果将会是相同的 – bigopon

+0

如果你想这样做,你可能必须编写你自己的loader。你确定你真的想这样做吗?这是一个非常令人困惑的事情,因为你会做一些CSS文件的导入,但它必须通过LESS加载器等。 – Ambroos

+0

我有点想做,因为我使用的是Aurelia ,它对支持非标准语法没有多大兴趣,所以我不能''require from ='。/ style.less'>'而不修改它们在'node_modules'中的代码。 这样很好如果我可以 '' ''style.less'将被加载 – bigopon