如何使用webpack制作图像目录和子目录。

比姆·尼萨德(Bheem nishad)

我正在使用Nodejs进行Web应用程序开发和webpack打包,我的代码在这里:

目录结构为:

main.js
src
 - js
 - styles
 - images
   -logo.png
   -clients_logo
     - client_logo1.png
     - client_logo2.png
----------------------------------- 
public (Use for output)
 - js
 - css
 - images

webpack.config.js

module.exports = {
    entry: './main.js',
    output: { path: path.join(__dirname, './public/'), filename: './js/bundle.js' },
    module: {
        loaders: [
            { test: /\.(jpg|jpeg|gif|png)$/,loader:'url-loader?limit=1024&name=images/[name].[ext]' }
        ]
    }
};

main.js

import './src/images/logo.png';
require.context('./src/images/clients_logo/', true);

当我使用webpack --progress --colorsput put命令编译此代码时

public
 - images
   - logo.png
   - client_logo1.png
   - client_logo2.png

但要求输出的是:

public
 - images
   - logo.png
   - clients_logo
     - client_logo1.png
     - client_logo2.png

我也在用

{ test: /\.(jpg|jpeg|gif|png)$/,loader:'url-loader?limit=1024&name=[path][name].[ext]?[hash]&context=/path' }

但它的输出是:

public
 - images
   - src
   - images
     - logo.png
     - clients_logo
       - client_logo1.png
       - client_logo2.png

因此,任何一个了解此问题并有解决方案的人,请提供。

迈克尔·容格(Michael Jungo)

[path]是源的相对路径,在您的情况下src/images/logo.png,其他图像的依此类推。随着context[path]成为相对于这条道路。设置context=src/会将其更改[path]images/logo.png,这正是您想要的。

因此,您可以将配置更改为:

{
  test: /\.(jpg|jpeg|gif|png)$/,
  loader: 'url-loader?limit=1024&name=[path][name].[ext]&context=src/'
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章