Skip to content

Commit 114cea2

Browse files
authored
fix: correct esm configuration for loadable/server, fixes: #999 (#1004)
* fix: correct esm configuration for loadable/server, fixes: #999 * chore: put common-js override in * update snapshots
1 parent c23df05 commit 114cea2

File tree

11 files changed

+98
-36
lines changed

11 files changed

+98
-36
lines changed

packages/component/.size-snapshot.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"dist/loadable.cjs.js": {
2+
"dist/cjs/loadable.cjs.js": {
33
"bundled": 16900,
44
"minified": 7226,
55
"gzipped": 2553
66
},
7-
"dist/loadable.esm.mjs": {
7+
"dist/esm/loadable.esm.mjs": {
88
"bundled": 16517,
99
"minified": 6917,
1010
"gzipped": 2490,

packages/component/package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
"name": "@loadable/component",
33
"description": "React code splitting made easy.",
44
"version": "5.16.3",
5-
"main": "./dist/loadable.cjs.js",
6-
"module": "./dist/loadable.esm.mjs",
5+
"main": "./dist/cjs/loadable.cjs.js",
6+
"module": "./dist/esm/loadable.esm.mjs",
77
"exports": {
88
".": {
9-
"require": "./dist/loadable.cjs.js",
10-
"import": "./dist/loadable.esm.mjs",
11-
"default": "./dist/loadable.cjs.js"
9+
"require": "./dist/cjs/loadable.cjs.js",
10+
"import": "./dist/esm/loadable.esm.mjs",
11+
"default": "./dist/cjs/loadable.cjs.js"
1212
}
1313
},
1414
"repository": "[email protected]:gregberge/loadable-components.git",
@@ -37,7 +37,8 @@
3737
"license": "MIT",
3838
"scripts": {
3939
"prebuild": "shx rm -rf dist",
40-
"build": "cross-env rollup -c",
40+
"build": "cross-env rollup -c && yarn create-cjs-package-json",
41+
"create-cjs-package-json": "echo '{\"type\": \"commonjs\"}' > ./dist/cjs/package.json",
4142
"prepublishOnly": "yarn run build"
4243
},
4344
"peerDependencies": {

packages/server/.eslintrc.json

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"dist/cjs/loadable-server.cjs.js": {
3+
"bundled": 18664,
4+
"minified": 10144,
5+
"gzipped": 2837
6+
},
7+
"dist/esm/loadable-server.esm.mjs": {
8+
"bundled": 18299,
9+
"minified": 9859,
10+
"gzipped": 2766,
11+
"treeshaked": {
12+
"rollup": {
13+
"code": 279,
14+
"import_statements": 235
15+
},
16+
"webpack": {
17+
"code": 13218
18+
}
19+
}
20+
}
21+
}

packages/server/package.json

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
"description": "Server utilities for loadable.",
44
"version": "5.16.2",
55
"type": "module",
6-
"main": "./lib/cjs/index.js",
7-
"module": "./lib/esm/index.js",
6+
"main": "./dist/cjs/loadable-server.cjs.js",
7+
"module": "./dist/esm/loadable-server.esm.mjs",
88
"exports": {
99
".": {
10-
"require": "./lib/cjs/index.js",
11-
"import": "./lib/esm/index.js",
12-
"default": "./lib/cjs/index.js"
10+
"require": "./dist/cjs/loadable-server.cjs.js",
11+
"import": "./dist/esm/loadable-server.esm.mjs",
12+
"default": "./dist/cjs/loadable-server.cjs.js"
1313
}
1414
},
1515
"repository": "[email protected]:gregberge/loadable-components.git",
@@ -29,12 +29,9 @@
2929
},
3030
"license": "MIT",
3131
"scripts": {
32-
"prebuild": "shx rm -rf lib",
33-
"build:esm": "MODULE_TARGET=esm yarn run build:script -d lib/esm",
34-
"build:cjs": "MODULE_TARGET=cjs yarn run build:script -d lib/cjs && yarn run create-cjs-package-json",
35-
"build:script": "BUILD_TARGET=node babel --config-file ../../babel.config.js --ignore \"**/*.test.js\" src",
36-
"build": "yarn build:esm && yarn build:cjs",
37-
"create-cjs-package-json": "echo '{\"type\": \"commonjs\"}' > ./lib/cjs/package.json",
32+
"prebuild": "shx rm -rf dist",
33+
"build": "cross-env rollup -c && yarn create-cjs-package-json",
34+
"create-cjs-package-json": "echo '{\"type\": \"commonjs\"}' > ./dist/cjs/package.json",
3835
"prepublishOnly": "yarn run build",
3936
"update-fixtures": "yarn --cwd ../../examples/__fixtures__ build:webpack && rm -rf ./__fixtures__ && cp -R ../../examples/__fixtures__/target ./__fixtures__ "
4037
},

packages/server/rollup.config.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/* eslint-disable import/no-extraneous-dependencies */
2+
import nodeResolve from 'rollup-plugin-node-resolve'
3+
import babel from 'rollup-plugin-babel'
4+
import replace from 'rollup-plugin-replace'
5+
import commonjs from 'rollup-plugin-commonjs'
6+
import { terser } from 'rollup-plugin-terser'
7+
import { sizeSnapshot } from 'rollup-plugin-size-snapshot'
8+
import pkg from './package.json'
9+
10+
const input = 'src/index.js'
11+
const name = 'loadable'
12+
const globals = {
13+
react: 'React',
14+
'hoist-non-react-statics': 'hoistNonReactStatics',
15+
}
16+
17+
const external = id => !id.startsWith('.') && !id.startsWith('/')
18+
19+
const getBabelOptions = ({ useESModules }) => ({
20+
exclude: '**/node_modules/**',
21+
runtimeHelpers: true,
22+
presets: [
23+
['@babel/preset-env', { loose: true }],
24+
['@babel/preset-react', { useBuiltIns: true }],
25+
],
26+
plugins: [
27+
'@babel/plugin-proposal-class-properties',
28+
'babel-plugin-annotate-pure-calls',
29+
['@babel/plugin-transform-runtime', { useESModules }],
30+
],
31+
})
32+
33+
export default [
34+
// cjs
35+
{
36+
input,
37+
output: { file: pkg.main, format: 'cjs', exports: 'named' },
38+
external,
39+
plugins: [babel(getBabelOptions({ useESModules: false })), sizeSnapshot()],
40+
},
41+
// esm
42+
{
43+
input,
44+
output: { file: pkg.module, format: 'esm' },
45+
external,
46+
plugins: [babel(getBabelOptions({ useESModules: true })), sizeSnapshot()],
47+
},
48+
]

packages/server/src/ChunkExtractor.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
/* eslint-disable react/no-danger */
22
import path from 'path'
33
import fs from 'fs'
4-
import uniq from 'lodash/uniq.js'
5-
import uniqBy from 'lodash/uniqBy.js'
6-
import flatMap from 'lodash/flatMap.js'
4+
import uniq from 'lodash/uniq'
5+
import uniqBy from 'lodash/uniqBy'
6+
import flatMap from 'lodash/flatMap'
77
import React from 'react'
8-
import { invariant, getRequiredChunkKey } from './sharedInternals.js'
9-
import ChunkExtractorManager from './ChunkExtractorManager.js'
10-
import { smartRequire, joinURLPath, readJsonFileSync } from './util.js'
8+
import { invariant, getRequiredChunkKey } from './sharedInternals'
9+
import ChunkExtractorManager from './ChunkExtractorManager'
10+
import { smartRequire, joinURLPath, readJsonFileSync } from './util'
1111

1212
const EXTENSION_SCRIPT_TYPES = {
1313
'.js': 'script',

packages/server/src/ChunkExtractor.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/* eslint-disable import/no-extraneous-dependencies */
2-
import 'regenerator-runtime/runtime.js'
2+
import 'regenerator-runtime/runtime'
33
import path from 'path'
44
import stats from '../__fixtures__/stats.json'
5-
import ChunkExtractor from './ChunkExtractor.js'
5+
import ChunkExtractor from './ChunkExtractor'
66

77
const targetPath = path.resolve(
88
__dirname,

packages/server/src/ChunkExtractorManager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react'
2-
import { Context } from './sharedInternals.js'
2+
import { Context } from './sharedInternals'
33

44
const ChunkExtractorManager = ({ extractor, children }) => (
55
<Context.Provider value={extractor}>{children}</Context.Provider>

packages/server/src/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export { default as ChunkExtractorManager } from './ChunkExtractorManager.js'
2-
export { default as ChunkExtractor } from './ChunkExtractor.js'
1+
export { default as ChunkExtractorManager } from './ChunkExtractorManager'
2+
export { default as ChunkExtractor } from './ChunkExtractor'

0 commit comments

Comments
 (0)