1.0.1 • Published 5 years ago

express-view-cache-clean v1.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

Express View Cache Clean

Express enables view template compilation caching in production (when NODE_ENV is production) which can improve performance. express-view-cache-clean can watch view file changes to clean relative caches.

NOTICE: only supported ejs template!!

Installation

yarn add express-view-cache-clean

or

npm i express-view-cache-clean --save

Example

const express = require('express')
const expressViewCacheClean = require('express-view-cache-clean')

const app = express()

expressViewCacheClean({
  app,
  viewPath: './views',
  // when filename includes 'page/home' view file changes, it will clean name includes 'page/home' cache
  rules: ['page/home', 'page/category'],
  recursive: true
})

Options

Clean Up Options

  • app: Express (required)
  • viewPath: String (required)
  • rules: Object | Array<String> | Array<Object> (required)

    Multiple rules configuration formats:

    // when filename includes 'page' view file changes, it will clean name includes 'page/home' cache
    rules: {
      'page/home': 'page/home',
    }
    
    rules: [
      'page/home',
      'page/category'
    ]
    
    rules: [{
      filename: 'page/home',
      cache: 'page/home'
    }]

    Multiple filename configuration formats:

    // String
    filename: 'page/home'
    
    // Function
    filename: (filename) => {
      return filename.includes('page/home')
    }
    
    // Regex
    filename: /page\/home/

    Multiple cache configuration formats:

    // String
    cache: 'page/home'
    
    // Function
    cache: (view, filename, app) => {
      return view.name.includes('page/home')
    }
    
    // RegExp
    cache: /page\/home/
    
    // Array<String | Function | RegExp>
    cache: [
      'page/home',
      (view, filename, app) => {
        return view.name.includes('page/second')
      },
      cache: /page\/other/
    ]

Watch Options

The usage and options are compatible with fs.watch.

  • persistent: Boolean (default true)
  • recursive: Boolean (default false)
  • encoding: String (default 'utf8')
  • filter: RegExp | Function (default null)

    Return that matches the filter expression.

    // filter with regular expression
    filter: /\.json$/
    
    // filter with custom function
    filter: f => !/node_modules/.test(f)
  • delay: Number (in ms, default 200)

    Delay time of the callback function.

    // log after 5 seconds
    delay: 5000
  • events: Array<String> (default 'update')

    Watch file events, update or remove.

    // only watch file update event
    events: ['update']
    // watch file all event
    events: ['update', 'remove']

License

MIT