webpack public 图片文件夹

webpack public folder for images

为了开始使用 React,我将 Webpack 和 Babel 添加到我的节点应用程序中。 我将所有脚本导入到一个脚本中,并将其设置为 webpack.config.js 中的条目,如下所示:

module.exports = {

entry: './src/App.js',
output: {
    path: __dirname,
    filename: 'app.js'
},
module: {
    loaders: [{
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loader: 'babel',
        query: {
            presets: ['es2015', 'react']
        }
    }]
}

};

当启动 webpack-dev-server 时,脚本找不到位于我的 public 文件夹中的图像(它被指向服务器 index.js 中的静态文件夹)。我尝试在输出中添加 - publicPath: "/public/" 但它甚至找不到 app.js 了。在 Webpack 中使用我的图像的最佳方式是什么?

只需将它们放在您的源目录中并需要它们!

src/exampleImage.jpg = 你的图片

src/ExampleImage.js:

import React from 'react';
import imageUrl from './exampleImage.jpg';

export default class ExampleImage extends React.Component {
  render() {
    return <img src={imageUrl} />;
  }
}

将正确的加载程序添加到加载程序数组(不要忘记 npm install file-loader):

  {
    test: /\.(jpg|png|gif)$/,
    loaders: ['file'],
  }

大功告成! Webpack 会自动将图像复制到正确的目录(您构建的脚本所在的目录)并确保 imageUrl 正确且有效。

很棒的奖励:您可以使用 image-webpack-loader 自动缩小图像,并使用 file-loader 执行自动文件名散列以进行长期缓存。只需查看他们的文档以获取更多信息!