Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/obahareth/are-you-es5
A package to help you find out which of your node_modules aren't ES5 so you can add them to your Webpack/Rollup/Parcel transpilation steps.
https://github.com/obahareth/are-you-es5
babel bundling es5 hacktoberfest javascript transpiling webpack
Last synced: about 20 hours ago
JSON representation
A package to help you find out which of your node_modules aren't ES5 so you can add them to your Webpack/Rollup/Parcel transpilation steps.
- Host: GitHub
- URL: https://github.com/obahareth/are-you-es5
- Owner: obahareth
- License: mit
- Created: 2019-01-20T13:53:26.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:48:48.000Z (about 2 years ago)
- Last Synced: 2024-12-18T02:35:14.387Z (22 days ago)
- Topics: babel, bundling, es5, hacktoberfest, javascript, transpiling, webpack
- Language: TypeScript
- Homepage:
- Size: 3.13 MB
- Stars: 276
- Watchers: 4
- Forks: 23
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# are-you-es5
[![All Contributors](https://img.shields.io/badge/all_contributors-5-orange.svg?style=flat-square)](#contributors-)
[![](https://img.shields.io/github/workflow/status/obahareth/are-you-es5/CI?style=popout)](https://github.com/obahareth/are-you-es5/actions/workflows/ci.yml)
[![](https://img.shields.io/npm/v/are-you-es5.svg?style=popout)](https://www.npmjs.com/package/are-you-es5)
![](https://img.shields.io/node/v/are-you-es5.svg?style=popout)A package to help you find out which of your `node_modules` aren't written in ES5 so you can add them to your Webpack/Rollup/Parcel transpilation steps. This is currently [limited to checking the entrypoint scripts only](https://github.com/obahareth/are-you-es5/issues/2), which **might** actually be enough of a check to determine if a package should be transpiled or not.
![](./.github/assets/example.png)
## Installing
You can install the package globally with
```bash
npm install -g are-you-es5
```or if you'd rather just run it immediately you can use npx:
```bash
npx are-you-es5 check /path/to/some/repo
```### Aliasing
If you've installed it globally and find it tiresome to type `are-you-es5` a lot, you can alias it to `es5`:
```bash
alias es5="are-you-es5"
```## Usage
```
Usage: are-you-es5 check [options]Checks if all node_modules (including monorepos) at are ES5
Options:
-a, --all Check all node_modules instead of just direct dependencies
-v, --verbose Log all messages (including modules that are ES5)
--no-regex-filtering Stops all filtering on babel-loader exclude regex (does not hide anything)
-r, --regex Get babel-loader exclude regex to ignore all node_modules except non-ES5 ones, by default does not show any babel or webpack modules, use with --no-regex-filtering if you want to see everything
--silent Do not log messages in the console (except regex if --regex is used)
-h, --help output usage information
```### Usage as a Library
If you would like to use this package as a NodeJS library instead of a CLI dependency, you may use this snippet:
```js
import {
checkModules,
buildIncludeRegexp,
buildExcludeRegexp
} from 'are-you-es5'const result = checkModules({
path: '', // Automatically find up package.json from cwd
checkAllNodeModules: true,
ignoreBabelAndWebpackPackages: true
})/** Returns the regexp including all es6 modules */
const es6IncludeRegExp = buildIncludeRegexp(result.es6Modules)/** Returns the regexp excluding all es6 modules */
const es6ExcludeRegexp = buildExcludeRegexp(result.es6Modules)
```### Example
```bash
are-you-es5 check /path/to/some/repo -r
β @babel/plugin-1 is not ES5
β @babel/plugin-2 is not ES5Babel-loader exclude regex:
/node_modules/(?![plugin-1|plugin-2])/
```## Upgrading
### Upgrading from 1.1
If you were on version 1.1, the `-a` or `-all` option used to be for logging all messages, this has now changed to `-v` or `--verbose` and `-a` and `-all` are now used as a flag to check all node modules.
### Upgrading to 1.3
1.3 Now by default skips checking anything that has the word `babel` or `webpack`, or if a string ends with `loader`.
To restore previous behavior use the `--no-regex-filtering` option.### Upgrading from 2.0 to 2.1
This upgrade only affects you if you were using the package as a library (instead of just a CLI tool), `checkModules` now returns an object that has 3 arrays: `es5Modules`, `es6Modules`, and `ignored`. To preserve previous behavior use `es6Modules`, see the [Usage as a Library](#usage-as-a-library) section.## Credits
- [acorn](https://github.com/acornjs/acorn) - All the actual ES5 checking happens through acorn, this package wouldn't exist without it.
- [es-check](https://github.com/dollarshaveclub/es-check) - This whole package wouldn't have been possible if I hadn't come across es-check and learned from it.## Contributors β¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
ClΓ©ment DUNGLER
π»
Paolo Priotto
π»
Yuki Hattori
π»
Renan Bandeira
π»
Yao Zhao
π»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!