# css-combo

> css module combo tool

Latest version **0.5.5** (published 2017-05-25) · 0 weekly downloads

## Install

```sh
npm install css-combo
pnpm add css-combo
yarn add css-combo
bun add css-combo
```

Provides the command `csscombo`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.5.5 |
| Published | 2017-05-25 |
| First published | 2012-05-22 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.8.1 |
| Dependencies | 4 |
| Known vulnerabilities | 0 (+7 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 67 |
| Author | daxingplay |
| Maintainers | daxingplay |
| Keywords | css, build, combo |

## Links

- npm: https://www.npmjs.com/package/css-combo
- Repository: https://github.com/daxingplay/css-combo
- Homepage: https://github.com/daxingplay/css-combo#readme
- Issues: https://github.com/daxingplay/css-combo/issues
- npm.io page: https://npm.io/package/css-combo

## Dependencies (4)

- [async](https://npm.io/package/async.md) ^0.9.0
- [lodash](https://npm.io/package/lodash.md) ^3.1.0
- [request](https://npm.io/package/request.md) ^2.53.0
- [iconv-lite](https://npm.io/package/iconv-lite.md) >=0.1.0

## Alternatives

- [style-dictionary](https://npm.io/package/style-dictionary.md) — 2.0M weekly downloads
- [postcss-merge-idents](https://npm.io/package/postcss-merge-idents.md) — 1.7M weekly downloads
- [@fontsource/noto-sans](https://npm.io/package/@fontsource/noto-sans.md) — 93.0K weekly downloads
- [uglifycss](https://npm.io/package/uglifycss.md) — 71.6K weekly downloads
- [mat4-interpolate](https://npm.io/package/mat4-interpolate.md) — 23.3K weekly downloads

## Recent versions

- 0.5.5 (latest) — 2017-05-25
- 0.5.4 — 2015-05-05
- 0.5.3 — 2015-02-23
- 0.5.2 — 2015-02-23
- 0.5.1 — 2015-02-23
- 0.5.0 — 2015-02-23
- 0.4.1 — 2015-02-13
- 0.4.0 — 2015-02-04
- 0.3.7 — 2015-01-27
- 0.3.6 — 2014-06-30
- 0.3.5 — 2014-06-09
- 0.3.4 — 2013-12-18
- 0.3.3 — 2013-12-17
- 0.3.2 — 2013-10-26
- 0.3.1 — 2013-07-15
- … 17 more at https://npm.io/package/css-combo/versions

## README

# css-combo

[![Build Status](https://secure.travis-ci.org/daxingplay/css-combo.png)](http://travis-ci.org/daxingplay/css-combo)

[![NPM version](https://badge.fury.io/js/css-combo.png)](http://badge.fury.io/js/css-combo)

## Introduction
combo css which import other css
对于js，目前已经有比较成熟的模块化方案，比如seajs、kissy，但是css方面呢，一般是通过less进行编译打包的。less官方对于less文件中的@import "xxx.css"是不会打包进来的，这也是考虑到本身就是有需求要这样引用css，而如果你@import "xxx.less"，less打包工具就会分析这些引入的模块，进行打包。
css-combo就是借鉴了这种思想，实现了css模块化。即在入口文件中@import其他模块，然后对入口文件进行打包的时候，该工具会分析import的文件，把这些文件打包进来。

对于CSS模块化，欢迎大家看我这篇博文：(http://www.techcheng.com/study/css/introduce-css-combo.html)

## Usage

首先需要npm安装一下：

    npm install -g css-combo

### 命令行使用 ###

命令行下，可以先进入需要打包的文件所在目录，然后

    csscombo xxx.source.css xxx.combo.css

第一个参数是源文件名，第二个参数是打包之后的文件名

其他选项有：

* -s: silent, 静默模式，表示不输出任何信息
* -ic: inputCharset, 可以指定输入文件的编码
* -oc： outputCharset, 可以指定输出文件的编码

### 在NodeJS里面使用 ###

你也可以在自己的打包工具中调用css combo，和其他npm包一样：

    var CSSCombo = require('css-combo');
    CSSCombo.build(src, dest, cfg, function(err){ callback(); });

* src 入口文件的地址
* dest 输出目录或者输出的完整路径（含文件名，推荐），可以使用相对路径
* cfg 参数可以配置以下选项：

    * inputEncoding：{String} 输入文件编码，可选，默认检测入口文件中的@charset设置。如果入口文件没有设置@charset，那么最好设置本选项
    * outputEncoding：{String} 输出文件编码，可选，默认UTF-8
    * exclude：{Array} 黑名单正则数组，可选，默认空
    * compress: {Boolean} 是否压缩，默认为true，处理规则同YUICompressor
    * debug: {Boolean} 是否打印日志
    * paths: {Array} `@import`额外查找的路径。
    * native2ascii: {Boolean} 是否替换中文为Unicode字符，默认为true
    * replaceFont: {Boolean} 是否把中文的字体名称替换成英文名称，默认为true，此选项依赖上面的选项，即必须native2ascii配置为true才有效。强烈建议各位开发者在书写CSS的时候就使用英文名称，比如微软雅黑，写成'Microsoft YaHei'

### 在grunt中使用 ###

CSS Combo配套的grunt插件：https://github.com/daxingplay/grunt-css-combo

## TODO

* 增加目录打包形式

## ChangeList

* 0.3.7：修复无法解析CDN Combo类型的URL的问题
* 0.3.6：修复单个src配置多个font路径的问题，修复font里面含有?的问题
* 0.3.5：修复issue #26
* 0.3.4：修复issue #22
* 0.3.3：增加替换中文的字体名称为英文名称的方法
* 0.2.2：修正打包之后输出文件编码问题
* 0.2.7：build参数更改，提供更多形式的输入，去掉部分log信息

## License
css-combo 遵守 "MIT"：https://github.com/daxingplay/css-combo/blob/master/LICENSE.md 协议

---
_Source: https://npm.io/package/css-combo · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
