【问题标题】:Webpack4 : Moving / Importing Image Folder from "SRC folder" to "DIST folder"Webpack4:将图像文件夹从“SRC文件夹”移动/导入到“DIST文件夹”
【发布时间】:2018-07-04 11:50:22
【问题描述】:

我正在尝试使用 Webpack 4 将我的图像文件夹从我的 src 文件夹导入(移动)到我的 dist 文件夹,但与 Gulp 不同的是,即使我什至没有试图搞乱此刻的图像,我只想让 Webpack 加载它们并将它们放在我的 dist/image 文件夹中。

我看到人们在他们的 index.js 上逐个导入图像,我拒绝相信这是唯一的解决方案,有没有办法将整个文件夹移动到 dist / production 文件夹而不必导入文件index.js 上的文件?

这是我目前的 webpack 配置:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const WebpackMd5Hash = require('webpack-md5-hash');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
    entry: path.resolve(__dirname, 'src/js/scripts.js'),
    output: {
        path: path.resolve(__dirname,'dist'),
        filename: '[name].[chunkhash].js'
    },
    module: {
        rules: [
            //JS
            {
                //Tipo de Archivo quiero reconocer
                test: /\.js$/,
                exclude: /node_modules/,
                //Que Loader se encarga del tipo de extension de archivo
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets:['babel-preset-env']
                    }
                },
            },           
            //IMAGES
            {
                test: /\.(jpg|png|gif)$/,
                use: {
                    loader: 'file-loader',
                    options: {
                        outputPath: 'images/',
                        name:'[name][hash].[ext]', 
                    }
                }
            },                       
            //SASS
            {
                test: /\.scss$/,
                use: ['style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader', 'sass-loader']
            }           
        ]
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename:'css/style.min.[contenthash].css',
        }),
        new HtmlWebpackPlugin ({
            inject: false,
            hash: true,
            template: './src/index.html',
            filename: 'index.html'        
        }),
        new WebpackMd5Hash()   
    ]
}

我没有粘贴我的 index.js 文件,因为我不知道在那里做什么,因为我不会逐个导入图像。期待您的想法。

【问题讨论】:

    标签: image webpack import webpack-4 webpack-file-loader


    【解决方案1】:

    以下语句应该将文件夹images中的所有图像输出到dist

    require.context("../images/", true, /\.(png|svg|jpg|gif)$/);
    

    【讨论】:

    • 非常感谢@Legends 成功了。只是一件事,谁在做将文件移动到这里的工作? “require.context”或“file-loader”?..或者两者兼而有之?加载程序和“require.context”具有路径的事实让我感到困惑。非常感谢!
    • 它是 webpack。 file-loader 的工作就是加载这种类型的文件。查看源代码以了解 file-loader 的实际作用。
    • 我也有同样的问题。但是我应该把那行代码放在 webpack.config.js 文件的什么位置呢?
    • 我上次用这个是在webpack version 3,当时我已经把它放在一个入口文件中,但是你可以尝试在webpack.config.js中做,只是放在它之前或之后export 声明。
    猜你喜欢
    • 2017-07-31
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2021-08-02
    相关资源
    最近更新 更多