3.0.0 • Published 12 months ago

@texastribune/queso-tools v3.0.0

Weekly downloads
54
License
MIT
Repository
github
Last release
12 months ago

@texastribune/queso-tools

Node task runners for compiling CSS, creating SVGs, and more.

This repo accompanies our CSS+icons framework, queso-ui. Use the the task runners here, to compile the assets in that framework.

Install

npm install @texastribune/queso-tools --save-dev

or

yarn add @texastribune/queso-tools --dev

Tools

modulesparams
stylesdirs, manifest (manifest is optional if you want files with hashed names)
iconsdirs
copydirs

Using these tasks in the wild

Most of the tasks expect an array of directories or files with an input, in: key, and output, out: key. To set this up, create a file called paths.js and declare your map of paths.

Example:

// paths.js
const SCSS_DIR = './scss';
const CSS_OUTPUT_DIR = './css/';
const SVG_LIB_DIR = './node_modules/@texastribune/queso-ui/icons/base';
const SVG_OUTPUT_DIR = './templates/includes';

const CSS_MAP = [
  {
    in: `${SCSS_DIR}/styles.scss`,
    out: CSS_OUTPUT_DIR,
  },
  {
    in: `${SCSS_DIR}/styles2.scss`,
    out: CSS_OUTPUT_DIR,
  },
];
// The "in" key for icons should be an array; you can mix and match icons from @texastribune/queso-ui and some stored locally
const SVG_MAP = [
  {
    in: [
      `${SVG_LIB_DIR}/twitter.svg`,
      `${SVG_LIB_DIR}/facebook.svg`,
      './icons/custom-icon.svg',
      './icons/other-icon.svg'
    ],
    out: `${SVG_OUTPUT_DIR}/my-svg-sprite.html`,
  },
];

// copy contents of a directory into another directory
// and/or copy a directory/file into another-directory/file
const COPY_MAP = [
  {
    in: SVG_LIB_DIR,
    out: SVG_OUTPUT_DIR,
  },
  {
    in: `${SVG_LIB_DIR}/twitter.svg`,
    out: `${SVG_OUTPUT_DIR}/twitter.svg`,
  },
];
// use if you'd like the outputted CSS to have hashed file names
const MANIFEST_FILE = `${CSS_OUTPUT_DIR}styles.json`;


module.exports = {
  CSS_MAP,
  SVG_MAP,
  MANIFEST_FILE,
  COPY_MAP
};

Now create a build.js file in that same folder where you'll reference these paths and begin to call the various tasks in this package.

That could look something like the following:

// build.js
const { styles, icons, copy } = require('@texastribune/queso-tools');
const { CSS_MAP, MANIFEST_FILE, SVG_MAP, COPY_MAP } = require('./paths');

async function build() {
  await styles(CSS_MAP, MANIFEST_FILE);
  // OR (use await if you had to glob to get your map)
  // const stylesArr = await CSS_MAP();
  // await styles(stylesArr, MANIFEST_FILE);
  await icons(SVG_MAP);
  await copy(COPY_MAP);
}

build()
  .catch((err) => {
    // eslint-disable-next-line no-console
    console.error(err.message);
    process.exit(1);
  });

Now run node build.js in your local environment to fire the build script.

Publishing

Make sure you're authenticated for npm publishing.

  1. npm login - then follow the prompts
  2. npm run release
3.0.0

12 months ago

2.3.2

2 years ago

2.3.1

2 years ago

2.3.0

2 years ago

2.2.5-0

3 years ago

2.2.5

3 years ago

2.2.4

3 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.2.0-1

3 years ago

2.1.7-0

3 years ago

2.2.0-0

3 years ago

2.1.6

4 years ago

2.1.5

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.3.0

5 years ago

1.3.0-0

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.1-3

5 years ago

1.1.1-2

5 years ago

1.1.1-1

5 years ago

1.0.1

5 years ago

1.1.0-0

5 years ago

1.0.0

5 years ago

0.0.1-4

5 years ago

0.0.1-3

5 years ago

0.0.1-2

5 years ago

0.0.1-1

5 years ago

0.0.1-0

5 years ago