How to use flatten setting in webpack 5 copy-webpack-plugin
Asked Answered
T

1

6

I use copy-webpack-plugin 10.2.0 and webpack 5.65.0. I want to copy js file in public/js folder to dist/js.

plugins: [
    new CopyWebpackPlugin({
        patterns:[
            {
                from:'public/js/*.js',
                to:path.resolve(__dirname, 'dist','js'),
            
            }
        ]
    })
],

But the setting also copy the path into dist, and it becomes dist/js/public/js.I try to add flatten:true but it has error

Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
 - options.patterns[0] has an unknown property 'flatten'. These properties are valid:
   object { from, to?, context?, globOptions?, filter?, transformAll?, toType?, force?, priority?, info?, transform?, noErrorOnMissing? }

How to make it then ?

Tadashi answered 10/1, 2022 at 9:26 Comment(0)
S
5

You can set the filename in the to parameter using the [name] and [ext] components and simply omit the path part.

plugins: [
    new CopyWebpackPlugin({
        patterns:[
            {
                from:'public/js/*.js',
                to:path.resolve(__dirname, 'dist','js', '[name][ext]'),
            
            }
        ]
    })
],
Switchman answered 10/1, 2022 at 15:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.