Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: distribute commonjs, ES module, and type declaration files #83

Merged
merged 1 commit into from
Dec 13, 2016

Conversation

eventualbuddha
Copy link
Contributor

This commit changes the distributable file format in the following ways:

  • unbundles both the commonjs and ES module files from one file each to one for each original file for each format
  • includes .d.ts files for each original source file
  • adds types field to package.json per https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html
  • removes rollup as the dist builder and uses a wrapper, script/build, that uses tsc directly
  • removes coffee-lex.js.flow

I don't like that I had to write a custom build script for this. It makes me feel like I'm doing something incorrectly to support both commonjs and ES modules. I removed rollup because it didn't seem to play well with TypeScript from a publishing perspective. Specifically, I couldn't find any way to automatically build a d.ts file for the project bundle generated by rollup that didn't have serious shortcomings (https://github.com/rollup/rollup-plugin-typescript/issues/54). I considered keeping the bundled .js and .mjs files and using multiple .d.ts files, but there didn't seem to be much benefit over simply leaving all of them split up. Other rollup-based projects can still efficiently bundle coffee-lex with the modules split out as separate files.

This commit changes the distributable file format in the following ways:
- unbundles both the commonjs and ES module files from one file each to one for each original file for each format
- includes `.d.ts` files for each original source file
- adds `types` field to `package.json` per https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html
- removes rollup as the dist builder and uses a wrapper, `script/build`, that uses `tsc` directly
- removes `coffee-lex.js.flow`

I don't like that I had to write a custom build script for this. It makes me feel like I'm doing something incorrectly to support both commonjs and ES modules. I removed rollup because it didn't seem to play well with TypeScript from a publishing perspective. Specifically, I couldn't find any way to automatically build a `d.ts` file for the project bundle generated by rollup that didn't have serious shortcomings (https://github.com/rollup/rollup-plugin-typescript/issues/54). I considered keeping the bundled `.js` and `.mjs` files and using multiple `.d.ts` files, but there didn't seem to be much benefit over simply leaving all of them split up. Other rollup-based projects can still efficiently bundle coffee-lex with the modules split out as separate files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant