From d8946e947b9d053191b1566609fb53511897fbaa Mon Sep 17 00:00:00 2001 From: Maxence Poutord Date: Fri, 8 Sep 2023 14:56:35 +0200 Subject: [PATCH] post: publish How to publish an npm package for ESM and CommonJS with TypeScript (#164) --- content/posts/2023/2023-09-08-cjs/cover.jpg | Bin 0 -> 65792 bytes content/posts/2023/2023-09-08-cjs/index.mdx | 134 ++++++++++++++++++++ src/components/MDX/Info.js | 20 ++- 3 files changed, 152 insertions(+), 2 deletions(-) create mode 100644 content/posts/2023/2023-09-08-cjs/cover.jpg create mode 100644 content/posts/2023/2023-09-08-cjs/index.mdx diff --git a/content/posts/2023/2023-09-08-cjs/cover.jpg b/content/posts/2023/2023-09-08-cjs/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8bc2a0066712fca7d429661d9514cfa70911e80 GIT binary patch literal 65792 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 RJ$TI=+qEw8F68h0{|6x_W=8-3 literal 0 HcmV?d00001 diff --git a/content/posts/2023/2023-09-08-cjs/index.mdx b/content/posts/2023/2023-09-08-cjs/index.mdx new file mode 100644 index 000000000..77ce2d2f9 --- /dev/null +++ b/content/posts/2023/2023-09-08-cjs/index.mdx @@ -0,0 +1,134 @@ +--- +layout: post +title: How to publish an npm package for ESM and CommonJS with TypeScript +description: + A step by step tutorial on how to publish an npm package for ECMAScript Modules (ESM) and CommonJS + (CJS) with TypeScript +slug: publish-npm-package-esm-and-cjs +date: 2023-09-08 +language: en +cover: ./cover.jpg +tags: ['JavaScript'] +--- + +import Info from '../../../../src/components/MDX/Info' + +I faced a problem recently. I have a reference data package which is an npm package that can be +consumed by two different projects: + +- The frontend: a React application bundled with Vite.js, an ESM builder (with no CJS support). +- The backend: a Nestjs application that only supports CommonJS. + +Also, this package contains some big files inside. Bundling everything in one file is a big no-no. + + +

CommonJS (CJS) is the older and traditional way of dealing with JS dependencies.

+

ESM (ECMAScript Modules) is the official standard format to package JavaScript.

+
+ +```tsx +// CommonJS (CJS) +const path = require('path') +module.exports = path.extname('index.html') + +// ESM (ECMAScript Modules) +import path from 'path' +export default path.extname('index.html') +``` + +## Folder structure + +Let's start with a classic file architecture: + +```bash +β”œβ”€β”€ dist +β”œβ”€β”€ src +β”‚ β”œβ”€β”€ function-a.ts +β”‚ β”œβ”€β”€ function-b.ts +β”‚ └── index.ts +β”œβ”€β”€ package.json +β”œβ”€β”€ tsconfig.esm.json +β”œβ”€β”€ tsconfig.cjs.json +└── README.md +``` + +Please note that everything under the `src/` folder import/export dependencies with the ES7 `import` +/ `export` keyword. + +## Library's package.json + +The solution I found is to have 2 folders under the `dist` folder: + +```json +{ + "name": "@maxpou/my-cool-package", + "main": "dist/cjs/index.js", + "exports": { + "require": "./dist/cjs/index.js", + "import": "./dist/esm/index.js" + }, + "files": ["README.md", "dist"], + "scripts": { + "build": "npm run build:cjs && npm run build:esm", + "build:cjs": "tsc -p tsconfig.cjs.json", + "build:esm": "tsc -p tsconfig.esm.json" + } +} +``` + +You can see that I use the `exports` token. This allows the package owner to define multiple entry +points. A CommonJS system will use the index located in the `./dist/cjs/index.js` folder while an +ESM system will use the other index located in the _esm_ folder. + +By the way, you can do +[much more with the conditional exports](https://nodejs.org/api/packages.html#conditional-exports)! + +## tsconfig.json files + +I don't have one file but two. + +```jsx{5-6} +// tsconfig.esm.json +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "outDir": "./dist/esm", + // ... + }, + "include": ["src/index.ts"], + "exclude": ["node_modules"] +} +``` + +```jsx{5-6} +// tsconfig.cjs.json +{ + "compilerOptions": { + "target": "es2017", + "module": "commonjs", + "outDir": "./dist/cjs", + // ... + }, + "include": ["src/index.ts"], + "exclude": ["node_modules"] +} +``` + +If your IDE or other tools need one named `tsconfig.json`, you can create a master one. Then the +specific tsconfig files can extend from it. + +Then you can `npm publish` and call it a day πŸ₯³ + +## Usage + +Your package will be available in both ESM and CommonJS environments. Your users can use it without +knowing there's a separation. + +```ts +// ESM +import { myFunction } from 'my-cool-package' + +// CommonJS +const { myFunction } = require('my-cool-package') +``` diff --git a/src/components/MDX/Info.js b/src/components/MDX/Info.js index 4ca960331..27a3d8b55 100644 --- a/src/components/MDX/Info.js +++ b/src/components/MDX/Info.js @@ -15,8 +15,24 @@ const MessageWrapper = styled.aside` } ` -const Info = ({ children }) => { - return {children} +const MessageHeader = styled.div` + font-weight: bold; + & > svg { + position: relative; + top: 5px; + width: 25px; + height: 25px; + padding-right: 5px; + } +` + +const Info = ({ children, title }) => { + return ( + + {title && {title}} + {children} + + ) } export default Info