CopyWebpack:尝试将文件从节点_模块复制到my public时出错 上下文

CopyWebpack:尝试将文件从节点_模块复制到my public时出错 上下文,webpack,font-awesome,copy-webpack-plugin,Webpack,Font Awesome,Copy Webpack Plugin,首先我做了很多研究,但没有成功 我使用django作为后端,为了管理我的前端依赖关系,我使用它来修改以满足我的需要 以下是我的npm/网页包管理结构的一部分: 前端 src 公开的 建造 公开的 我使用CopyWebpackPlugin来管理我的资产,比如图像和字体。放置在public文件夹中的所有资产都正确复制到build/public 但是,我尝试添加一个新的模式条目,以从位于node_模块中的Fontsome获取字体,并将其复制到build/public文件夹中,但无论我尝

首先我做了很多研究,但没有成功

我使用django作为后端,为了管理我的前端依赖关系,我使用它来修改以满足我的需要

以下是我的npm/网页包管理结构的一部分:

  • 前端
    • src
    • 公开的
    • 建造
      • 公开的
我使用CopyWebpackPlugin来管理我的资产,比如图像和字体。放置在
public
文件夹中的所有资产都正确复制到
build/public

但是,我尝试添加一个新的模式条目,以从位于node_模块中的Fontsome获取字体,并将其复制到
build/public
文件夹中,但无论我尝试什么,都会出现错误。我不知道我做错了什么

模式条目 错误 应指定插件名称中的错误

因此,我尝试通过
显式命名,仅获取一个文件,并且该文件正在运行

{
    from: Path.resolve(__dirname, '../node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot'),
    to: 'public/fonts/fa-brands-400.eot'
},
但是我想让它在整个文件夹中工作。
那么我想知道问题是由模块规则引起的:

{
    test: /\.(ico|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2)(\?.*)?$/,
    use: {
        loader: 'file-loader',
        options: {
            name: '[path][name].[ext]',
        },
    },
},
我尝试了一些修改,但没有找到任何解决办法

编辑 我还尝试了@Andrey:在自己的
测试中隔离字体和图像的过程。没有什么变化:/

{
    test: /\.(eot|otf|webp|svg|ttf|woff|woff2)(\?.*)?$/,
    /* Exclude images while working with fonts, e.g. .svg can be both image or font. */
    exclude: Path.resolve(__dirname, '../public/images'),
    use: {
        loader: 'file-loader',
        options: {
            name: '[name].[ext]',
            outputPath: 'fonts/'
        },
    },
},
即使删除这些测试,我也会犯同样的错误。所以我猜这是从我的模式定义


我看到
name
上有3个错误,因此我从webfonts节点_模块中删除了三个
.svg
文件。它已经成功地建立了。所以我还是被卡住了,因为我不知道怎么可能…

我认为尝试从加载程序设置中删除[path]是值得的。当你要求CopyPlugin复制已加载的文件时,不确定webpack将如何处理这些文件,这些文件的名称中包含完整路径。

我感觉自己像个傻瓜

我发现这是我的
图像最小化网页包插件
试图在3
.svg
webfonts上应用优化

new ImageMinimizerPlugin({
    minimizerOptions: {
        // Lossless optimization with custom option
        plugins: [
            ['gifsicle', {interlaced: true}],
            ['jpegtran', {progressive: true}],
            ['optipng', {optimizationLevel: 5}],
            [
                'svgo',
                {
                    plugins: [
                        {
                            removeViewBox: false,
                        },
                    ],
                },
            ],
        ],
    },
}),

目前,我已经停用了
svgo
部分,它运行良好。最终,当svg来自我也认为是node_模块时,我会尝试排除优化,但它没有解决我的问题。但是当然,我会保留它,而不使用
[path]
您是对的。
new ImageMinimizerPlugin({
    minimizerOptions: {
        // Lossless optimization with custom option
        plugins: [
            ['gifsicle', {interlaced: true}],
            ['jpegtran', {progressive: true}],
            ['optipng', {optimizationLevel: 5}],
            [
                'svgo',
                {
                    plugins: [
                        {
                            removeViewBox: false,
                        },
                    ],
                },
            ],
        ],
    },
}),