gpt4 book ai didi

Webpack:清理 block - 但只有 block

转载 作者:行者123 更新时间:2023-12-04 17:17:02 25 4
gpt4 key购买 nike

我正在使用 webpack (^5.44.0) 的分块功能来创建分块。这工作正常,但我提到过几天创建了很多 block

-rw-r--r--    1 user  staff   135K Jul 14 14:24 home-view.7a174a95c4b6c5db7d16.js
-rw-r--r-- 1 user staff 135K Jul 21 16:35 home-view.883b7079d7003f7aa412.js
-rw-r--r-- 1 user staff 135K Jul 21 16:36 home-view.8e332e11ef50c41b6e9e.js
#redacted for better readability...

这是 webpack.mix.js(因为我使用的是 Laravel-mix):

const mix = require('laravel-mix');
const path = require('path');

mix.webpackConfig({
output: {
chunkFilename: 'js/chunks/[name].[chunkhash].js'
},
module: {
rules: [
{
test: /node_modules(?:\/|\\).+\.js$/,
loader: 'babel-loader',
options: {
presets: [['@babel/preset-env', {targets: 'last 2 versions, ie >= 10'}]],
plugins: ['@babel/plugin-transform-destructuring', '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-transform-template-literals'],
babelrc: false
}
},
{
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /node_modules/
}
]
},
});

mix.js("resources/js/main.js", "public/js").vue();

mix.extract(['vue']);

if (mix.inProduction()) {
mix
.version();
}

如果我把它扩展到

const mix = require('laravel-mix');
const path = require('path');

mix.webpackConfig({
output: {
chunkFilename: 'js/chunks/[name].[chunkhash].js'
clean: true
},
module: {
rules: [
{
test: /node_modules(?:\/|\\).+\.js$/,
loader: 'babel-loader',
options: {
presets: [['@babel/preset-env', {targets: 'last 2 versions, ie >= 10'}]],
plugins: ['@babel/plugin-transform-destructuring', '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-transform-template-literals'],
babelrc: false
}
},
{
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /node_modules/
}
]
},
});

mix.js("resources/js/main.js", "public/js").vue();

mix.extract(['vue']);

if (mix.inProduction()) {
mix
.version();
}

public 目录中的所有内容都被删除,甚至包括我需要的那些文件:

public
├── css
│   └── app.css
├── favicon.ico
├── fonts
│   ├── ...
├── index.php
├── js
│   ├── chunks
│   │   ...
│   ├── main.js
│   ├── manifest.js
│   └── vendor.js
├── mix-manifest.json
├── robots.txt
├── storage -> /var/www/html/storage/app/public
└── web.config

但我真的只是想让 webpack 清理存储在 ./chunks 中的所有内容

最佳答案

Webpack 输出清理方法主要用于清理整个输出文件夹。但是,由于您将它与 Laravel 一起使用(我不熟悉它),一些重要文件混合在您的公共(public)文件夹中。我看到有两种方法可以解决这个问题。

第一个选项是你可以将你的 webpack Assets 放到 public 中的其他文件夹,然后 webpack 将只清理这个 assets 文件夹:

output: {
path: path.resolve(__dirname, 'dist/assets'),
clean: true,
}

其他选项是将所有重要文件放在 static 文件夹下,然后将此路径从清理中排除:

output: {
clean: {
keep(filePath) {
return filePath.includes('static');
},
},
}

关于Webpack:清理 block - 但只有 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68472220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com