2016-10-11 106 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