GithubHelp home page GithubHelp logo

grevenx / grunt-preprocess Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jsoverson/grunt-preprocess

0.0 2.0 0.0 325 KB

Preprocess files based off environment configuration

License: Other

JavaScript 95.61% CoffeeScript 2.62% HTML 1.77%

grunt-preprocess's Introduction

grunt-preprocess

NPM

Linux Build Status dependencies dev-dependencies

Grunt task around preprocess npm module

What does it look like?

<head>
  <title>Your App</title>

  <!-- @if NODE_ENV='production' -->
  <script src="some/production/lib/like/analytics.js"></script>
  <!-- @endif -->

</head>
<body>
  <!-- @ifdef DEBUG -->
  <h1>Debugging mode - <!-- @echo RELEASE_TAG --> </h1>
  <!-- @endif -->
  <p>
  <!-- @include welcome_message.txt -->
  </p>
</body>
var configValue = '/* @echo FOO */' || 'default value';

// @ifdef DEBUG
someDebuggingCall()
// @endif

See preprocess documentation for more information

Getting Started

Install this grunt plugin next to your project's Gruntfile with: npm install --save-dev grunt-preprocess

Then add this line to your project's Gruntfile:

grunt.loadNpmTasks('grunt-preprocess');

Options

context

Type: Object Default: {NODE_ENV: 'development'}

The additional context on top of ENV that should be passed to templates. If NODE_ENV is not set, the task sets it to development by default.

inline

Type: Boolean Default: undefined

Required to enable overwriting of source files

srcDir

Type: String Default: <path to source file to be processed>

The directory where to look for files included via @include variants and @extend.

srcEol

Type: String Default: EOL of source file or os.EOL if source file contains multiple different or no EOLs.

The end of line (EOL) character to use for the preprocessed result. May be one of:

  • \r\n - Windows
  • \n - Linux/OSX/Unix
  • \r - legacy Mac

type

Type: String Default: file extension of the file to be processed

The syntax type of source file to preprocess. See preprocess() description for a list of all supported file types.

Example Usage

preprocess : {
  options: {
    context : {
      DEBUG: true
    }
  },
  html : {
    src : 'test/test.html',
    dest : 'test/test.processed.html'
  },
  js : {
    src : 'test/test.js',
    dest : 'test/test.processed.js'
  },
  multifile : {
    files : {
      'test/test.processed.html' : 'test/test.html',
      'test/test.processed.js'   : 'test/test.js'
    }
  },
  inline : {
    src : [ 'processed/**/*.js' ],
    options: {
      inline : true,
      context : {
        DEBUG: false
      }
    }
  },
  all_from_dir: {
    src: '**/*.tmpl',
    ext: '.html',
    cwd: 'src',
    dest: 'build',
    expand: true
  }
}

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

Release History

  • 5.0.1 fixed processing of mutifile-style tasks for multiple different file extensions or different containing directories (#50)
  • 5.0.0 bumped preprocess dep to 3.0.2, implemented backward-compatible mapping of old to new options and pass-through for new options (#34, #39, #48)
  • 4.2.0 bumped preprocess dep to 2.3.1, bumped dev dependencies
  • 4.1.0 bumped preprocess dep to 2.1.0
  • 4.0.0 Switched order of context assignment, small change but necessitated major version
  • 3.0.1 Fixed issue arising from undefined options (#19)
  • 3.0.0 Updated dependencies, added merge from global options context to subtask context (#13)
  • 2.3.0 Updated preprocess, changes default handling to html
  • 2.2.0 Delegating to grunt's file.read/write for consistent usage within grunt (e.g. deep writes)
  • 2.1.0 updated preprocess dependency
  • 2.0.0 updated for grunt 0.4.0, moved context override to context option
  • 1.3.0 Moved logic to 'preprocess' npm module
  • 1.2.1 Added @include to include external files
  • 1.2.0 Added @include to include external files
  • 1.1.0 Added ability to process multiple destinations in a files block
  • 1.0.0 Changed syntax, added directives
  • 0.4.0 Added support for inline JS directives
  • 0.3.0 Added insert, extended context to all environment
  • 0.2.0 Added simple directive syntax
  • 0.1.0 Initial release

License

Written by Jarrod Overson

Licensed under the Apache 2.0 license.

grunt-preprocess's People

Contributors

alexeykhristov avatar bendingbender avatar callumacrae avatar cmtegner avatar jsoverson avatar steffenmllr avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.