assetslocals

combine assets.json file and locals.js, It can be used in jade and grunt.

assetsLocals

combine assets.json file and locals.js, It can be used in jade and grunt.

合并assets.json和locals的内容,方便jade或是grunt调用.

assets.json AssetManager.

locals.js Expressjs app.locals.

$ npm install assetslocals
app.locals = assetslocals({
    localsFile: require('./config/locals'),
    assetmanagerOptions: {
        assets: require('./config/assets.json'),
        debug: (process.env.NODE_ENV !== 'production'),
        webroot: 'public/'
    }
});

locals.js

module.exports = {
  appName:"myApp",
  lang:"cn",
  title:"wow myApp",
  description:"balabala",
  pretty: true, //jade setting
  NODE_ENV:"development" //for jade
};

assets.json

{
  "vendor": {
    "css": {
      "bin/css/vendor.css": [
        "public/bower_components/angular-loading-bar/build/loading-bar.min.css",
        "public/bower_components/bootstrap/dist/css/bootstrap.min.css"
      ]
    },
    "js": {
      "bin/js/vendor.js": [
        "public/bower_components/angular/angular.min.js",
        "public/bower_components/angular-animate/angular-animate.min.js",
        "public/bower_components/angular-loading-bar/build/loading-bar.min.js",
        "public/bower_components/bootstrap/dist/js/bootstrap.min.js",
        "public/bower_components/angular-bootstrap/ui-bootstrap.min.js",
        "public/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js",
        "public/bower_components/angular-ui-router/release/angular-ui-router.min.js"
      ]
    },
    "ie": {
      "bin/js/Modernizr-repond.js": [
        "public/bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js",
        "public/bower_components/respond/dest/respond.min.js"
      ]
    }
  },
  "main": {
    "css": {
      "bin/css/main.css": ["public/css/main.css"]
    },
    "js": {
      "bin/js/main.js": [
        "public/js/*.js"
      ]
    }
  }
}

test.jade

each item in locals.assets.js
  script(src=item)
each item in locals.assets.css
  link(rel='stylesheet', href=item)

gruntfile.js jade config

jade: {
    options: {
        pretty: true,
        data: function(dest, src) {
            return require('assetsLocals')({
                localsFile: require('./config/locals'),
                assetmanagerOptions: {
                    assets: require('./config/assets.json'),
                    debug: (process.env.NODE_ENV !== 'production'),
                    webroot: 'public/'
                }
            });
        }
    }
}