assetx
Assets management
Last updated 5 years ago by alexdpy .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install assetx 
SYNC missed versions from official npm registry.

AssetX

Manage front-end assets

AssetX manages front-end assets and takes care about dev/production environments

Work in progress, please take care.

Install

$ npm install -g assetx

Usage

Configuration

AssetX needs a yaml configuration file. Default is ./assetx.yml.

This is the configuration reference :

# assetx.yml

# (required) where AssetX will find view templates
views:
    - views/**/*.twig

# (required) where AssetX will find dev/prod assets
devFolder: web/.tmp_assets
prodFolder: web/assets

# (required) web path to dev/prod assets
devBaseUrl: /.tmp_assets
prodBaseUrl: /assets

# (optional, default to false) if true, prod assets file names will have a hash based on the dev assets content
# this can be overridden by the --force-cache-busting and --disable-cache-busting options
cacheBusting: true

# (optional) implement this to customize some of the tags AssetX will generate (./src/tags.coffee)
tags:
    twig:
        js: '<script type="text/javascript" src="%src%"></script>'

# (optional) implement this to override the gulp tasks AssetX will pipe (./src/tasks.coffee)
tasks:
    js:
        gulp-uglify: # this key will be used to require the gulp module
            # an array of arguments that will be applied on the module
            - { mangle: false }

# (required) list of assets AssetX will take into account
assets:
    css/style.css: # asset name must be suffixed by the mime-type extension, like .css or .js (path is relative to prodFolder)
        files: # list of dev assets to concatenate (path relative to devFolder)
            - css/**/*.css

    js/app.js:
        files:
            - js/app1.js
            - js/app2.js

    # global options (except 'views') can be override on each asset
    print.css:
        files:
            - css/print/**/*.css
        prodFolder: cdn_assets/css
        prodBaseUrl: 'http://cdn.my-project.com'
        tags:
            twig: '<link rel="stylesheet" href="%src%" media="print">'
        tasks:
            gulp-minify-css:
                - { keepSpecialComments: 0 }

Views

In view templates, insert AssetX tags for each asset defined in the assetx.yml

{% if app.environment == 'prod' %}
    {#assetx prod:css/style.css#}{#endassetx#}
    {#assetx prod:print.css#}{#endassetx#}
{% else %}
    {#assetx dev:css/style.css#}{#endassetx#}
    {#assetx dev:print.css#}{#endassetx#}
{% endif %}

Run AssetX

~/my-project $ assetx

Some options and other commands are available, just run assetx --help for more information

License

MIT

Credits

Inspired by gassetic

Current Tags

  • 0.1.3                                ...           latest (5 years ago)

4 Versions

  • 0.1.3                                ...           5 years ago
  • 0.1.2                                ...           5 years ago
  • 0.1.1                                ...           5 years ago
  • 0.1.0                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 1
Dependencies (11)
Dev Dependencies (3)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |