Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

webpack-assets.json gets removed if output.clean webpack option is enabled #404

Open
Den-dp opened this issue May 14, 2021 · 1 comment
Open

Comments

@Den-dp
Copy link
Contributor

Den-dp commented May 14, 2021

Describe the bug
webpack-assets.json gets removed if the new output.clean webpack@5 option is used.

To Reproduce
Steps to reproduce the behavior:

npm init -y
npm i webpack assets-webpack-plugin webpack-cli -D
npx webpack --mode production

Expected behavior
webpack-assets.json file should be present in the output folder even if webpack configured with clean: true.

Webpack Config

const AssetsPlugin = require('assets-webpack-plugin');
const path = require('path');

module.exports = {
    output: {
        path: path.resolve(__dirname, 'dist'),
        clean: true
    },
    plugins: [
        new AssetsPlugin({
            useCompilerPath: true,
        })
    ]
};

Desktop (please complete the following information):

  • OS: Windows
  • Node version: v12.21.0
  • Plugin version: 7.1.0

Additional context
I found that this is a regression that was introduced in 7.1.0 after fixing #327 via #392
Works fine if downgraded to the 7.0.0

npm i assets-webpack-plugin@7.0.0 -D
npx webpack --mode production
Den-dp added a commit to Den-dp/assets-webpack-plugin that referenced this issue May 17, 2021
To allow further refactoring/fixing of ztoben#327 since current solution breaks ztoben#404 and symfony/webpack-encore#969

Resolves: ztoben#392 ztoben#327
@geldmacher
Copy link
Contributor

I can confirm this.

A hotfix for this is:

const AssetsPlugin = require('assets-webpack-plugin');
const path = require('path');

module.exports = {
    output: {
        path: path.resolve(__dirname, 'dist'),
        clean: {
            keep: /webpack-assets\.json/
        }
    },
    plugins: [
        new AssetsPlugin({
            useCompilerPath: true,
        })
    ]
};

Den-dp added a commit to Den-dp/assets-webpack-plugin that referenced this issue Jun 23, 2021
To allow further refactoring/fixing of ztoben#327 since current solution breaks ztoben#404 and symfony/webpack-encore#969

Resolves: ztoben#392 ztoben#327
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants