npm.io
2.1.13 • Published 1 year agoCLI

minify-web

Licence
ISC
Version
2.1.13
Deps
8
Size
19 kB
Vulns
0
Weekly
0

minify-web

通用前端文件压缩混淆工具,可以将指定文件/文件夹压缩混淆到指定文件/文件夹。

特性

  • 支持压缩HTML、CSS、JavaScript文件
  • 支持混淆JavaScript代码,提高安全性
  • 支持排除指定文件/文件夹
  • 支持通过命令行参数和配置文件进行配置
  • 配置优先级:命令行参数 > 配置文件 > 默认设置

安装

# 全局安装
npm install -g minify-web

# 或本地安装
npm install minify-web --save-dev

命令行使用

# 最简单的用法,压缩当前目录到dist目录
minify-web

# 指定源目录和输出目录
minify-web -d src -o dist

# 排除文件
minify-web -d src -o dist -e "**/*.min.js,lib/jquery.js"

# 排除文件并保留到输出目录
minify-web -d src -o dist -e "**/*.min.js" -k

# 使用配置文件
minify-web -c minify.config.js

命令行选项

选项 简写 描述 默认值
--dir -d 要压缩的源目录 ./
--output -o 输出目录 ./dist
--exclude -e 排除的文件/文件夹,支持glob模式,多个模式使用逗号分隔
--keep-excluded -k 是否保留被排除的文件到输出目录 false
--config -c 配置文件路径 自动查找

配置文件

支持三种格式的配置文件:JS、JSON、YAML。以下是配置文件示例:

JS (minify.config.js)
module.exports = {
  // 要压缩的源目录
  dir: './src',
  
  // 输出目录
  output: './dist',
  
  // 排除的文件/文件夹,支持glob模式
  exclude: [
    '**/*.min.js',
    'lib/jquery.js',
    'node_modules/'
  ],
  
  // 是否保留被排除的文件到输出目录
  keepExcluded: true
};
JSON (minify.config.json)
{
  "dir": "./src",
  "output": "./dist",
  "exclude": [
    "**/*.min.js",
    "lib/jquery.js",
    "node_modules/"
  ],
  "keepExcluded": true
}
YAML (minify.config.yml)
# 要压缩的源目录
dir: ./src

# 输出目录
output: ./dist

# 排除的文件/文件夹,支持glob模式
exclude:
  - "**/*.min.js"
  - "lib/jquery.js"
  - "node_modules/"

# 是否保留被排除的文件到输出目录
keepExcluded: true

排除模式

排除模式支持glob模式,例如:

  • **/*.min.js - 排除所有已经压缩的JS文件
  • lib/jquery.js - 排除具体文件
  • node_modules/ - 排除整个目录
  • assets/vendor/**/* - 排除vendor目录下的所有文件

编程API

const { minifyProject } = require('minify-web');

// 压缩项目
minifyProject('./src', './dist', {
  exclude: ['**/*.min.js', 'lib/jquery.js'],
  keepExcluded: true
})
  .then(() => console.log('压缩完成!'))
  .catch(err => console.error('压缩失败:', err));

许可证

MIT

Keywords