npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@messageflow/build

v1.0.0

Published

Quick build with Gulp

Downloads

16

Readme

NPM

Version Downloads MIT License Code of Conduct

Build Status CircleCI Dependency Status NSP Status Codecov Coverage Status

codebeat-badge codacy-badge

Better build process with Gulp for general Node.js projects written in TypeScript.

Table of contents

Pre-requisites

Setup

Install

# Install via NPM as one of the `devDependencies`
$ npm install --save-dev @messageflow/build

Usage

gulpfile.js

const gulp = require('gulp');
const { builder } = require('@messageflow/build');

const build = builder();
/** `cleanGlobs` can be helpful when the destination directory is not the `dist` directory. */
// const build = builder({
//   dist: '.',
//   cleanGlobs: [
//     './*.js',
//     './*.d.ts',
//     '!./gulpfile.js',
//     '!./json.d.ts',
//   ],
// });

gulp.task('clean', build.clean);
gulp.task('lint', build.lint);
gulp.task('copy', build.copy);
gulp.task('ts', build.ts);
gulp.task('watch', build.watch);
gulp.task('default', build.default);

API Reference

DEFAULT_IGNORE_GLOBS

[
  '!**/demo*/**/*.ts*',
  '!**/test*/**/*.ts*',
]

DEFAULT_BABEL_CONFIG

{
  presets: [
    ['@babel/preset-env', {
      targets: { node: 'current' },
      spec: true,
      modules: false,
      useBuiltIns: 'usage',
      shippedProposals: true,
    }],
    ['minify', {
      replace: false,
      mangle: { keepFnName: true },
      removeConsole: false,
      removeDebugger: true,
    }],
  ],
}

BuilderParams

  • src <?string> Optional source directory. Defaults to src.
  • dist <?string> Optional destination directory. Defaults to dist.
  • cleanGlobs <?string|string[]> Optional glob patterns to clean files/ directories up before every build process initiates. This is required only when the destination directory is not the dist directory. Defaults to the value of dist if unspecified.
  • copyGlobs <?string|string[]> Optional glob patterns to copy files/ directories to destination build directory. Defaults to ['<SRC>/**/*.*', '!<SRC>/**/*.ts*', '<SRC>/**/*.d.ts'].
  • ignoreGlobs <?string|string[]> Optional glob patterns to ignore files/ directories. Defaults to DEFAULT_IGNORE_GLOBS. This only works when isProd is set to true.
  • isProd <?boolean> Optional production flage. Set to true if the build process is meant for production. Defaults to process.env.NODE_ENV === 'production'.
  • rootPath <?string> Optional path to current working directory. Defaults to ..
  • babelConfig <?Object> Optional configuration for Babel. This is only needed when isProd is set to true. Defaults to DEFAULT_BABEL_CONFIG.
  • tsConfig <?string> Optional path to tsconfig.json. Defaults to ./tsconfig.json.
  • tslintConfig <?string> Optional path to tslint.json. Defaults to ./tslint.json. This defaults to ./tslint.prod.json when isProd is set to true.

builder([options])

  • options <?BuilderParams> Optional configuration for the build process.

  • returns: <Object> An object of build tasks to be assigned as Gulp task, e.g. gulp.task('<TASK_NAME>', <GULP_TASK_FUNCTION>). It comprises of a list of tasks fo a common build process with Gulp for most of the projects:

    1. clean - Always remove old files from previous build.
    2. lint - Always lint all .ts files with given tslint.json.
    3. ts - Compile all .ts files with given tsconfig.json.
    4. copy - Copy all asset files such as images, json, md, etc.
    5. watch - Run the build process by watching for flle changes.
    6. default - Default build process that comprises all the above.

License

MIT License © Rong Sen Ng