4.0.1 â€ĸ Published 3 years ago

@bingsjs/template-file v4.0.1

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

template-file

NOTE: this is a temporary release to solve an issue of the original release. See https://github.com/gsandf/template-file/issues/45.

Once the issue is solved, this release will be removed.

🔀 Replace {{ variables }} in all your files

Build status Greenkeeper badge

Use variables to replace template strings in any type of file.

✨ Some helpful features:

  • If you use a JavaScript file as the dataFile argument, whatever object the JS exports is used for replacement.
  • If the value of one of the keys is a function, the result of that function is used for replacement.
  • Deeply-nested keys can be used for replacements.

    ⚠ī¸ NOTE: Keys with a period in the name will not be resolved. {{ user.name }} will look for { user: { name: '' }} but not { 'user.name': ''}. This would be easy to change, but we're leaving as-is for now for slightly better replacement performance (please open an issue if you would like the other behavior).

Usage

template-file <dataFile> <sourceGlob> <destination>

Arguments

  • data - Data file in JSON; used to replace variables in source files
  • sourceGlob - Files to process; see glob for syntax
  • destination - Destination directory where processed files go

Examples

ℹī¸ TIP: Remember to place quotes around your arguments (if they contain asterisks, question marks, etc.) to keep your shell from expanding globs before template-file gets to consume them.

Just handle one file:

template-file data.json template.txt build/

Compile all .abc files in src/ to build/:

template-file stuff.json 'src/**/*.abc' build/

Compile all HTML files in src/ to dist/ using the exported result of a JavaScript module:

template-file retrieveData.js 'src/**/*.html' './dist'

API

const { renderString, renderTemplateFile } = require('template-file')

const data = {
  location: {
    name: 'Nashville'
  },
  adjective: 'cool'
}

// Replace variables in string
renderString('{{ location.name }} is {{ adjective }}.', data) // 'Nashville is cool.'

// Replace variables in a file
renderTemplateFile('/path/to/file', data)
  .then(renderedString => console.log(renderedString)) // same as above, but from file

Install

With either Yarn or npm installed, run one of the following:

# If using Yarn, add to project:
yarn add template-file

# ...or install as development dependency:
# (use this command if you're using `template-file` to build your project)
yarn add --dev template-file

# ...*or* install globally to use anywhere:
yarn global add template-file

# If using npm, add to project:
npm install --save template-file

# ...or install as development dependency:
# (use this command if you're using `template-file` to build your project)
npm install --save-dev template-file

# ...*or* install globally to use anywhere:
npm install --global template-file

License

MIT

4.0.1

3 years ago