@pingy/init

7.1.0 • Public • Published

Init

npm version Build Status Coverage Status

Scaffold a project for use with Pingy Middleware and Pingy Export.

Getting Started

To install:

npm install @pingy/init

To scaffold out a project using html, scss, babel, you could do:

var init = require('@pingy/init');

var initDir = '/path/to/dir';
var options = {
  styles: { type: 'scss' },
  scripts: { type: 'babel' },
  whitespaceFormatting: 2,
  babelPolyfill: true,
  normalizeCss: true,
};

init(initDir, options).then([successFn],[errorFn]);
// [successFn] will be passed an array of the files that were created during the scaffold

This will scaffold a project that has the following directory structure:

/path/to/dir
├─┬ scripts
│ ├── main.babel.js
│ └── polyfill.js
├─┬ styles
│ ├── main.scss
│ └── normalize.css
└ index.html

And here is a truncated version of the html file:

<!DOCTYPE html>
  <head>
    <!-- ... -->
    <link rel="stylesheet" href="styles/normalize.css">
    <link rel="stylesheet" href="styles/main.css">
  </head>
  <body>
    <!-- ... -->
    <script src="scripts/polyfill.js"></script>
    <script src="scripts/main.js"></script>
  </body>
</html>

Options

  • html

    • type (String, default = 'html'): Which languages to use for html documents. Possibilities: 'html', 'jade'.

    • file (String, default = 'index'): Filename (without extension) for main html document.

  • styles

    • type (String, default = 'css'): Which languages to use for stylesheets. Possibilities: 'css', 'scss', 'sass', 'less', 'styl'.

    • file (String, default = 'main'): Filename (without extension) for main style file.

    • folder (String, default = 'styles'): folder where style files are stored.

  • scripts

    • type (String, default = 'js'): Which languages to use for javascript. Possibilities: 'js', 'babel', 'coffee'.

    • file (String, default = 'main'): Filename (without extension) for main script files.

    • folder (String, default = 'styles'): folder where script files are stored.

  • babelPolyfill (Boolean): Include and reference the babel polyfill.

  • normalizeCss (Boolean): Include and reference normalize.css.

  • whitespaceFormatting (Number/String, default = 'tabs'): Formatting for whitespace. If not specified then tabs will be used, otherwise you can pass a number (e.g. 2, 4, 8) and the corresponding number of spaces will be used

Here is a full list of the defaults:

{
  html: {
    file: 'index',
    type: 'html', // or 'jade'
  },
  styles: {
    folder: 'styles',
    file: 'main',
    type: 'css', // or 'scss', 'sass', 'less', 'styl'
  },
  scripts: {
    folder: 'scripts',
    file: 'main',
    type: 'js', // or 'babel', 'coffee'
  },
  babelPolyfill: false,
  normalizeCss: false,
  whitespaceFormatting: 'tabs',
}

Readme

Keywords

none

Package Sidebar

Install

npm i @pingy/init

Weekly Downloads

3

Version

7.1.0

License

MIT

Last publish

Collaborators

  • davej