2016-03-04 71 views
0

我有這樣的:使用的WebPack resolveLoader別名或如何縮短需要路徑

let avatar = require ('../../../public/assets/img/avatar.jpg'); 

我希望能夠利用這樣的:

let avatar = require('alias!./img/avatar.jpg'); 

我嘗試做的是設置別名在這樣的webpack配置:

resolveLoader: { 
    alias: { 
     'alias': path.join(__dirname, '../public/assets/'), 
    } 
}, 

路徑確實解析到一個正確的目錄和文件在那裏。原始的長需求正常工作。但是使用別名,我得到一個

錯誤:無法解析「文件」或「目錄」 ./img/avatar.jpg

我缺少的別名配置的東西或也許我沒有使用正確的工具來完成這一切?

回答

0

一種方法是設置modulesDirectories選項,以定義您希望webpack解析路徑的新文件夾。

https://webpack.github.io/docs/configuration.html#resolve-modulesdirectories

沒有看到你的webpack.config.js。我還懷疑,你可能希望這些選項被設置爲resolveresolveLoader

resolve: { 
    modulesDirectories: [ 
     'path/to/assets' 
    ] 
}, 

然後......

let avatar = require('./img/avatar.jpg'); 
// should look at 'path/to/assets/img/avatar.jpg'