Skip to content

Commit 39eb61c

Browse files
authored
feat(node-resolve): add native node es modules support (#413)
Ref #412 Enable native node es modules via "exports" field in package.json. Added custom plugin to generate nested package.json with {"type": "module"} as an alternative to mjs extension usage. This works similar to rollup distribution. https://unpkg.com/browse/rollup@2.10.9/dist/es/
1 parent 80d0da9 commit 39eb61c

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

packages/node-resolve/package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"author": "Rich Harris <richard.a.harris@gmail.com>",
1111
"homepage": "https://github.com/rollup/plugins/tree/master/packages/node-resolve/#readme",
1212
"bugs": "https://github.com/rollup/plugins/issues",
13-
"main": "dist/index.js",
13+
"main": "./dist/cjs/index.js",
1414
"engines": {
1515
"node": ">= 8.0.0"
1616
},
@@ -75,6 +75,11 @@
7575
"!**/types.ts"
7676
]
7777
},
78-
"module": "dist/index.es.js",
78+
"exports": {
79+
"require": "./dist/cjs/index.js",
80+
"import": "./dist/es/index.js"
81+
},
82+
"module": "./dist/es/index.js",
83+
"type": "commonjs",
7984
"types": "types/index.d.ts"
8085
}

packages/node-resolve/rollup.config.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import babel from 'rollup-plugin-babel';
22
import json from '@rollup/plugin-json';
33

4+
import { emitModulePackageFile } from '../../shared/rollup.config';
5+
46
import pkg from './package.json';
57

68
export default {
@@ -22,7 +24,7 @@ export default {
2224
],
2325
external: Object.keys(pkg.dependencies).concat(['fs', 'path', 'os', 'util']),
2426
output: [
25-
{ file: pkg.main, format: 'cjs' },
26-
{ file: pkg.module, format: 'es' }
27+
{ file: pkg.main, format: 'cjs', exports: 'named' },
28+
{ file: pkg.module, format: 'es', plugins: [emitModulePackageFile()] }
2729
]
2830
};

0 commit comments

Comments
 (0)