Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CleanWebpackPlugin在Webpack 5中未清理_Webpack_Webpack Dev Server_Webpack Plugin_Webpack 5 - Fatal编程技术网

CleanWebpackPlugin在Webpack 5中未清理

CleanWebpackPlugin在Webpack 5中未清理,webpack,webpack-dev-server,webpack-plugin,webpack-5,Webpack,Webpack Dev Server,Webpack Plugin,Webpack 5,我正在使用最新版本的webpack 5.3.2和“clean webpack plugin”:“^3.0.0”。显然,当我构建时,插件不会清理dist文件夹 这是我的网页信息: Binaries: Node: 12.18.1 - ~/.nvm/versions/node/v12.18.1/bin/node Yarn: 1.22.4 - ~/.nvm/versions/node/v12.18.1/bin/yarn npm: 6.14.8 - ~/.nvm/version

我正在使用最新版本的webpack 5.3.2和“clean webpack plugin”:“^3.0.0”。显然,当我构建时,插件不会清理dist文件夹

这是我的网页信息:

  Binaries:
    Node: 12.18.1 - ~/.nvm/versions/node/v12.18.1/bin/node
    Yarn: 1.22.4 - ~/.nvm/versions/node/v12.18.1/bin/yarn
    npm: 6.14.8 - ~/.nvm/versions/node/v12.18.1/bin/npm
  Browsers:
    Chrome: 86.0.4240.111
    Firefox: 82.0
  Packages:
    clean-webpack-plugin: ^3.0.0 => 3.0.0 
    copy-webpack-plugin: ^6.2.1 => 6.2.1 
    terser-webpack-plugin: ^5.0.3 => 5.0.3 
    webpack: ^5.3.2 => 5.3.2 
    webpack-cli: ^4.1.0 => 4.1.0 
  Global Packages:
    webpack-cli: 4.1.0
    webpack: 5.3.2

这是我的网页配置:

const path = require('path');
const webpack = require('webpack');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
  mode: 'development',
  entry: './src/index.ts',
  plugins: [
    new CleanWebpackPlugin({
  cleanOnceBeforeBuildPatterns: [path.join(__dirname, 'dist/**/*')]
}),
    new webpack.ProgressPlugin(),
    new CopyPlugin({
      patterns: [
        { from: 'src', to: 'src' },
        { from: 'package.json' },
        { from: 'README.md' }
      ],
    }),
  ],
  output: {
    filename: 'utils.min.js'
  },
  module: {
    rules: [
      {
        test: /\.(ts|tsx)$/,
        loader: 'ts-loader',
        include: [path.resolve(__dirname, 'src')],
        exclude: [/node_modules/]
      },
      {
        test: /\.m?js$/,
        exclude: [/node_modules/],
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }]
  },

  resolve: {
    extensions: ['.tsx', '.ts', '.js']
  }
}
 output: {
    filename: 'utils.min.js',
    clean: true,
 }

即使启用详细选项,我也看不到日志,插件也不会清理。

显然,当您指定一个选项时。输出(在我自定义输出包名称的情况下)
clean webpack plugin
也需要您指定路径,否则插件将被禁用,不会出现错误!:

  output: {
    filename: 'utils.min.js',
    path: path.resolve(__dirname, 'dist')
  },

从webpack v5中,您可以删除
clean webpack插件
插件,并在您的webpack配置中使用output.clean选项:

const path = require('path');
const webpack = require('webpack');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CopyPlugin = require('copy-webpack-plugin');

module.exports = {
  mode: 'development',
  entry: './src/index.ts',
  plugins: [
    new CleanWebpackPlugin({
  cleanOnceBeforeBuildPatterns: [path.join(__dirname, 'dist/**/*')]
}),
    new webpack.ProgressPlugin(),
    new CopyPlugin({
      patterns: [
        { from: 'src', to: 'src' },
        { from: 'package.json' },
        { from: 'README.md' }
      ],
    }),
  ],
  output: {
    filename: 'utils.min.js'
  },
  module: {
    rules: [
      {
        test: /\.(ts|tsx)$/,
        loader: 'ts-loader',
        include: [path.resolve(__dirname, 'src')],
        exclude: [/node_modules/]
      },
      {
        test: /\.m?js$/,
        exclude: [/node_modules/],
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env']
          }
        }
      }]
  },

  resolve: {
    extensions: ['.tsx', '.ts', '.js']
  }
}
 output: {
    filename: 'utils.min.js',
    clean: true,
 }