Nicer Package Manager

    node-kpc

    0.5.0 • Public • Published

    KPC

    Build a KISSY package, for KISSY 1.3+.

    build status

    Features

    • Simple
    • KISSY 1.3+
    • Online combo only
    • Support CJS Style
    • Support Module Name Flatten
    • Support KISSY.add auto generate for no-kissy module

    Installation

    This module is installed via npm:

    $ npm install node-kpc

    API

    kpc.build(options[, files])

    • options.name, String, Name of package, required
    • options.path, String, Path of package, required
    • options.flatten, Boolean, false, 是否压缩模块名, optional
    • files Array|String, Files to compile, optional

    kpc.compile(options[, files])

    • options.name, String, Name of package, required
    • options.path, String, Path of package, required
    • options.flatten, Boolean, false, 是否压缩模块名, optional
    • files Array|String, Files to compile, optional
    • Return Object

    kpc.generateDepFile(modules);

    • modules Object, the module object compiled
    • return String

    Example Usage

    Case1. Build all file in a Package

    var kpc = require('node-kpc');
     
    // build a package
    kpc.build({
        pkg: {
            name: 'xcake',
            path: 'sample/src'
        },
        dest: 'sample/build', // where the package is build to
        depFile: 'sample/build/map.js'
    });
     
    Before After
    sample/src
    ├── app
    │   ├── cjs-full.js
    │   ├── cjs.js
    │   ├── fac-config.js
    │   ├── name-fac-config.js
    │   ├── no-kissy.js
    │   ├── object.js
    │   └── string.js
    └── pages
        └── home
            ├── index.js
            └── mod.js
    
    sample/build
    ├── app
    │   ├── cjs-full.js
    │   ├── cjs.js
    │   ├── fac-config.js
    │   ├── name-fac-config.js
    │   ├── no-kissy.js
    │   ├── object.js
    │   └── string.js
    ├── map.js
    └── pages
        └── home
            ├── index.js
            └── mod.js
    

    Case2. Specify Files to build

    var kpc = require('node-kpc');
     
    // build a package
    kpc.build({
        pkg: {
            name: 'xcake',
            path: 'sample/src'
        },
        dest: 'sample/build', // where the package is build to
        depFile: 'sample/build/map.js' //
    }, ['sample/src/app/*.js']);
     

    After build:

    src dest
    sample/src
    ├── app
    │   ├── cjs-full.js
    │   ├── cjs.js
    │   ├── fac-config.js
    │   ├── name-fac-config.js
    │   ├── no-kissy.js
    │   ├── object.js
    │   └── string.js
    └── pages
        └── home
            ├── index.js
            └── mod.js
    
    sample/build
    ├── app
    │   ├── cjs-full.js
    │   ├── cjs.js
    │   ├── fac-config.js
    │   ├── name-fac-config.js
    │   ├── no-kissy.js
    │   ├── object.js
    │   └── string.js
    └─ map.js
    

    Case3. Compile a package (all file in package path)

    var kpc = require('node-kpc');
     
    var pkg = kpc.compile({
        name: 'xcake',
        path: 'sample/src'
    });
     
    console.log(pkg);
     
    ```
     
    the pkg look like this
     
    ```json
    {
        "files": [
            {
                "srcCode": "/**\n * @fi...",
                "isKISSY": true,
                "modules": [
                    {
                        "name": "xcake/app/cjs",
                        "requires": [
                            "node",
                            "../components/header/",
                            "./mod/",
                            "./example.css"
                        ]
                    }
                ],
                "genCode": "/**\n * @fi...",
                "filename": "app/cjs.js",
                "srcFile": "sample/src/app/cjs.js"
            }
        ],
        "ignoredFiles": [],
        "modules": {
            "xcake/app/cjs": {
                "requires": [
                    "node",
                    "../components/header/",
                    "./mod/",
                    "./example.css"
                ]
            }
        }
    }
    ```
     
    #### Case5. Specify files to compile
     
    ````js
    var kpc = require('node-kpc');
     
    var pkg = kpc.compile({
        name: 'xcake',
        path: 'sample/src'
    }, ['sample/src/app/*']);
     
    console.log(pkg);
     
    ```

    Keywords

    Install

    npm i node-kpc

    DownloadsWeekly Downloads

    26

    Version

    0.5.0

    License

    BSD-3-Clause

    Last publish

    Collaborators

    • abc-team
    • maxbbn