2016-03-04 105 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'