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

@telus/build-essential

v2.0.0

Published

contains a list of packages which are considered essential for building packages in ci platform

Downloads

36

Readme

Build Essential

version Build Status Docker Build Status

contains a list of packages which are considered essential for building packages in ci platform

Why

Our Reference Architecture introduces a set of standards around linting, code quality, testing are more ...

Those standards are upheld using a variety of tools, however, projects need to add these individual tools as dependencies, which introduces a number of challanges:

CI Environment

CI tests have to run npm install on every project, and the bigger the dependency list, the longer those runs take.

As part of moving to separate CI & CD processes, we have the opportunity to pre-load some of the most common project dependencies into a Docker container

Local Development

For developers working across multipl projects, having to install the same dependencies over and over for every project adds a layer of inconsistency that can be resolved with global dependencies

What

  • npm package: released as an open source package under @telus scope in npm, the package.json file contains a number of pre-selected common dependencies, (mainly used for linting)

    Note: the dependencies are marked as peerDependencies to enable some limitations around eslint and others in global usage. For example, when eslint is installed globally it looks for packages in the global scope, not the local one.

  • Docker Container: a Dockerfile uses the package above as basis for creating a container used in CI jobs

Packages

  • Configuration:

    • @telus/eslint-config - Shared ESLint Config
    • @telus/remark-config - Shared Remark Config
    • @telus/semantic-release-config - Shared Semantic Release Config
  • Tools:

    • editorconfig-checker - EditorConfig validator
    • eslint - ESLint Validator
    • babel-eslint - Babel-ESLint for if you are using types (Flow) or experimental features not supported in ESLint itself yet
    • remark-cli - Remark is a markdown validator
    • semantic-release Semantic Release is a fully automated version management and package publishing tool
    • updated - Updated ensures you have the latest dependencies
  • Utilities:

How

Install Locally

npm install --global @telus/build-essential

Note: the postinstall step will attempt to install more packages globally, a good way to make this work if you are having permission issues is to set your NPM prefix to somewhere in your homedir (e.g. ~/.npm) in your config (~/.npmrc with prefix=<dir>) and to add the bin/ directory to your PATH environment variable. For an example, consider line 15 of the Dockerfile. If you really know what you're doing, but it's not recommended, you could run with sudo depending on your local npm setup

Use in your CI

Use the Docker Container to run your lint steps as per the example provided in this project's circle.yml


Github: @telus • Twitter: @telusdigital