CopyWebpack:尝试将文件从节点_模块复制到my public时出错 上下文
首先我做了很多研究,但没有成功 我使用django作为后端,为了管理我的前端依赖关系,我使用它来修改以满足我的需要 以下是我的npm/网页包管理结构的一部分: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文件夹中,但无论我尝
- 前端
- src
- 公开的
- 建造
- 公开的
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,
},
],
},
],
],
},
}),