1.0.4 • Published 5 years ago

file-minify-webpack-plugin v1.0.4

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

file-minify-webpack-plugin

webpack文件压缩插件,同时可以进行文件的拷贝移动,参考copy-webpack-plugin

可以对当前的静态文件进行移动和压缩(html,css,js,json)

安装

npm i -D copy-webpack-plugin

使用

webpack.config.js

const FileMinifyWebpackPlugin = require('file-minify-webpack-plugin')

const config = {
  plugins: [
    new FileMinifyWebpackPlugin([ ...options ], globOption)
  ]
}

options

属性类型默认值描述
from(#from to){String}undefined需要匹配的文件,接受minimatch options表达式
to(#from to){String}输出文件的地址,为空默认输出到output根目录下
force{Boolean}false是否重写已写入 compilation.assets 中的文件,即覆盖其它plugins/loaders处理过的文件
ignore{Array/String}[]from文件中需要忽略的文件
minify{Boolean}bool是否对匹配的文件进行压缩
flatten{Boolean}false删除所有目录引用,仅复制文件名,如果文件同名,则可能出现覆盖的情况
transform{Function\|Promise}(content, path) => content在文件输出之前,对文件内容进行修改或其它操作,content为compilation.assets[xxx].source()
context{String}from的根路径,可不填
options{Object}{}压缩配置参数

from to

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    { from: ',/common/', to: '/to/dest/' },
    { from: '/common**/*.html', to: '/to/dest/' }
  ], globOption)
]

force

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    { from: 'src/**/*', to: 'dest/', force: true }
  ], globOption)
]

ignore

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    { from: 'src/**/*', to: 'dest/', ignore: [ '*.js' ] }
  ], globOption)
]

flatten

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    { from: 'src/**/*', to: 'dest/', flatten: true }
  ], globOption)
]

transform

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    {
      from: 'src/*.png',
      to: 'dest/',
      transform (content, path) {
        return optimize(content)
      }
    }
  ], globOption)
]

context

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    { from: 'src/*.txt', to: 'dest/', context: 'app/' }
  ], globOption)
]

options

代码压缩分别通过UglifyJsClean-CssHtml-Minifier进行JSCSSHTML压缩

webpack.config.js

[
  new FileMinifyWebpackPlugin([
    { from: 'src/*.txt', to: 'dest/', option: {
        mangle : false
        ...
    }}
  ], globOption)
]

globOption

NameTypeDefaultDescription
debug{String}'warning'Debug Options
ignore{Array}[]全局需要忽略的from文件,对所有的option生效
context{String}compiler.options.context全局上下文根目录
afterTask{function}(complication) => ''执行完成所有压缩复制任务后的操作

debug

NameTypeDefaultDescription
'info'{String\|Boolean}false文件位置信息和读取信息输出
'debug'{String}false详细的debug信息输出
'warning'{String}true警告信息输出

'info'

webpack.config.js

[
  new FileMinifyWebpackPlugin(
    [ ...patterns ],
    { debug: 'info' }
  )
]

'debug'

webpack.config.js

[
  new FileMinifyWebpackPlugin(
    [ ...patterns ],
    { debug: 'debug' }
  )
]

'warning' (default)

webpack.config.js

[
  new FileMinifyWebpackPlugin(
    [ ...patterns ],
    { debug: true }
  )
]

global-ignore

webpack.config.js

[
  new FileMinifyWebpackPlugin(
    [ ...patterns ],
    { ignore: [ '*.js', '*.css' ] }
  )
]

context

webpack.config.js

[
  new FileMinifyWebpackPlugin(
    [ ...patterns ],
    { context: '/app' }
  )
]

afterTask

webpack.config.js

[
  new FileMinifyWebpackPlugin(
    [ ...patterns ],
    { afterTask:(complication) =>{
      ...
    })}
  )
]
1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago