dist-es6

0.2.5 • Public • Published

dist-es6

Build Status

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.

Usage

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

{
  "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:

{
  "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:

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:

{
  "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:

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:

npm install

Run tests with:

npm test

Readme

Keywords

Package Sidebar

Install

npm i dist-es6

Weekly Downloads

6,008

Version

0.2.5

License

MIT

Last publish

Collaborators

  • vinsonchuong