# dist-es6

> Utilities to support development of npm packages in ES6+

Latest version **0.2.5** (published 2016-10-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install dist-es6
pnpm add dist-es6
yarn add dist-es6
bun add dist-es6
```

Provides the commands `dist-es6`, `dist-es6-run`, `dist-es6-bootstrap`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.5 |
| Published | 2016-10-01 |
| First published | 2015-06-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 12 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | Vinson Chuong |
| Maintainers | vinsonchuong |
| Keywords | es6 |

## Links

- npm: https://www.npmjs.com/package/dist-es6
- Repository: https://github.com/vinsonchuong/dist-es6
- Issues: https://github.com/vinsonchuong/dist-es6/issues
- npm.io page: https://npm.io/package/dist-es6

## Dependencies (12)

- [babel](https://npm.io/package/babel.md) ^6.5.2
- [dedent](https://npm.io/package/dedent.md) ^0.6.0
- [babel-cli](https://npm.io/package/babel-cli.md) ^6.16.0
- [babel-core](https://npm.io/package/babel-core.md) ^6.16.0
- [babel-runtime](https://npm.io/package/babel-runtime.md) ^6.5
- [register-module](https://npm.io/package/register-module.md) ^0.0.2
- [node-promise-es6](https://npm.io/package/node-promise-es6.md) ^0.3.2
- [babel-preset-latest](https://npm.io/package/babel-preset-latest.md) ^6.16.0
- [babel-preset-stage-0](https://npm.io/package/babel-preset-stage-0.md) ^6.16.0
- [fs-extra-promise-es6](https://npm.io/package/fs-extra-promise-es6.md) ^0.1.1
- [babel-plugin-transform-runtime](https://npm.io/package/babel-plugin-transform-runtime.md) ^6.15.0
- [babel-plugin-transform-decorators-legacy](https://npm.io/package/babel-plugin-transform-decorators-legacy.md) ^1.3.4

## Recent versions

- 0.2.5 (latest) — 2016-10-01
- 0.2.4 — 2016-08-27
- 0.2.3 — 2016-08-09
- 0.2.2 — 2016-07-17
- 0.2.1 — 2016-07-14
- 0.2.0 — 2016-07-14
- 0.1.18 — 2016-05-06
- 0.1.17 — 2016-05-03
- 0.1.16 — 2016-05-03
- 0.1.15 — 2016-04-19
- 0.1.14 — 2016-04-12
- 0.1.13 — 2016-03-21
- 0.1.12 — 2016-03-21
- 0.1.11 — 2016-03-21
- 0.1.10 — 2016-03-01
- … 28 more at https://npm.io/package/dist-es6/versions

## README

# dist-es6
[![Build Status](https://travis-ci.org/vinsonchuong/dist-es6.svg?branch=master)](https://travis-ci.org/vinsonchuong/dist-es6)

Utilities to support development of npm packages in ES6+.

While developing, `dist-es6` modifies the Node.js module search path so that you
can import files by module name as a user of your package would, instead of
having to figure out relative paths.

When you're ready to publish your package, `dist-es6` compiles ES6+ code from
the `src` directory, copies the `package.json`, and copies other whitelisted
files (from the `files` field in `package.json`) into the `dist` directory; it
then publishes the `dist` directory, ensuring that users only deal with the
compiled code.

## Installing
`dist-es6` is available as an
[npm package](https://www.npmjs.com/package/dist-es6).

## Usage
In your `package.json`, run the `dist-es6` command from the `prepublish`
script as follows:

```json
{
  "name": "project",
  "scripts": {
    "prepublish": "dist-es6"
  }
}
```

Then, run `npm install`.

Note that your project must have all of its JavaScript inside of the `src`
directory. The `main` and `bin` fields must only refer to files inside of the
`src` directory:

```json
{
  "name": "project",
  "main": "src/index.js",
  "bin": {
    "project": "src/bin/project.js"
  },
  "scripts": {
    "prepublish": "dist-es6"
  }
}
```

For executables written in ES6+, do not add a shebang to the file; `dist-es6`
will automatically add a shebang after compilation or linking. For executables
not written in ES6+ (that can run as is via `node`), you still need to add a
shebang.

Remember to run `npm install` after any changes to `package.json`.

Now, you'll be able to directly run executables from the current project on
the command line. You'll also be able to require files from the current project
via module path instead of relative path:

```js
import code from 'project/lib/code';
```

For publishing, files outside of the `src` directory that need to be published
must be whitelisted in the `files` field as follows:

```json
{
  "name": "project",
  "files": ["LICENSE", "README.md", "docs"],
  "main": "src/index.js",
  "bin": {
    "project": "src/bin/project.js"
  },
  "scripts": {
    "prepublish": "dist-es6"
  },
}
```

Note that a dependency on the `babel-runtime` will be added to the compiled
version of the package.

To publish the compiled version of the package:

```sh
npm publish
```

The above will compile the package into the `dist` directory and run
`npm publish` on the `dist` directory. Note that as an implementation detail,
the command will return code `143`, which will probably cause deployment
scripts to fail. You need to explicitly check the error code.

## Development
### Getting Started
The application requires the following external dependencies:
* Node.js

The rest of the dependencies are handled through:
```bash
npm install
```

Run tests with:
```bash
npm test
```

---
_Source: https://npm.io/package/dist-es6 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
