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

@loopmode/babel7-base

v1.2.6

Published

Common dependencies and build tools for babel7-based packages

Downloads

3

Readme

babel7-base

Common dependencies and configs for developing packages with babel 7. Contains babel, esdoc, eslint and prettier, as well as some plugins/extensions.

Provides CLI to copy default config files like .eslintrc, prettier.config.js etc

Check https://www.npmjs.com/package/@loopmode/babel6-base for the babel 6 version

Installation and usage

Recommended: install globally

npm install --global @loopmode/babel7-base

Now run the install script in any package:

b7 install

Use-case

Use the b7 command to get started with a new package that you want to publish or use elsewhere. It will ask you a couple of questions, but you can just go ahead and hit enter to use the defaults.

Configuration

There are default config files that you can use as a base and extend/modify as needed.

via config files

Typically you'll create a bunch of config files and extend the provided defaults there.

// .babelrc
{
  "extends": "@loopmode/babel7-base/.babelrc"
}
// .eslintrc
{
  "extends": "@loopmode/react"
}
// prettier.config.js
module.exports = {
  ...require('@loopmode/babel7-base/prettier.config')
};
// .esdoc.js
module.exports = {
  ...require('@loopmode/babel7-base/esdoc.config')
};

via package.json

Alternatively, you can add keys to your package.json, but there are some caveats.

// package.json
{
  "babel": {
    "extends": "@loopmode/babel7-base/.babelrc"
  },
  "eslintConfig": {
    "extends": "@loopmode/react"
  },
  "prettier": {
    ...
  },
  "esdoc": {
    ...
  }

Caveats:

  • The eslint config @loopmode/eslint-config-react is included as a dependency
  • When extending the eslint config, omit the eslint-config- part of the package name and use just @loopmode/react instead
  • When configuring eslint via package.json, the key must be "eslintConfig" (and not just "eslint")
  • When configuring prettier or ESDoc via package.json, you can not extend from the default config - you have to provide a full configuration directly

config options

Scripts

Just add some scripts to your package.json as usual:

{
  "scripts": {
    "babel": "babel src --out-dir lib --copy-files",
    "eslint": "eslint src",
    "esdoc": "esdoc"
  }
}

Pass any arguments to the scripts as usual, e.g. yarn babel --watch.

Note that ESLint and prettier enforce specific code style, and you might get a bunch of warnings for existing projects. Use yarn eslint --fix to normalize code style and whitespace.

Generate docs with yarn esdoc.

Sublime Text

Here is an example Sublime Text project file. It will automatically format saved files in the project, and ESLint errors will be displayed when SublimeLinter and SublimeLinter-eslint are installed.

{
  "folders": [
    {
      "path": ".",
      "file_exclude_patterns": [],
      "folder_exclude_patterns": ["node_modules"]
    }
  ],
  "settings": {
    "SublimeLinter.linters.eslint.chdir": "${project}/",
    "js_prettier": {
      "auto_format_on_save": true,
      "auto_format_on_save_excludes": ["*/node_modules/*", "*/.git/*", "*.json", "*.html"]
    }
  }
}