Skip to content

Commit 7c5cd3b

Browse files
committed
fix: provide browser versions independent from module system
Probably will fix uuidjs#378 Currently main field is used for node and module for browser build. This is not entierly correct. Webpack can be used to build node apps. Though module is always preferred over main. For browser versions there is a special field. In this diff I added esm support for both node and browser. rollup-plugin-node-resolve look at browser field as well and prefer it to bundle umd.
1 parent 06e43af commit 7c5cd3b

File tree

4 files changed

+79
-16
lines changed

4 files changed

+79
-16
lines changed

package-lock.json

+62
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+10-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,15 @@
1818
},
1919
"sideEffects": false,
2020
"main": "dist/index.js",
21-
"module": "dist/esm-browser/index.js",
21+
"module": "dist/esm/index.js",
22+
"browser": {
23+
"./dist/md5.js": "./dist/md5-browser.js",
24+
"./dist/rng.js": "./dist/rng-browser.js",
25+
"./dist/sha1.js": "./dist/sha1-browser.js",
26+
"./dist/esm/md5.js": "./dist/esm/md5-browser.js",
27+
"./dist/esm/rng.js": "./dist/esm/rng-browser.js",
28+
"./dist/esm/sha1.js": "./dist/esm/sha1-browser.js"
29+
},
2230
"files": [
2331
"CHANGELOG.md",
2432
"CONTRIBUTING.md",
@@ -36,6 +44,7 @@
3644
"@babel/preset-env": "7.8.4",
3745
"@commitlint/cli": "8.3.5",
3846
"@commitlint/config-conventional": "8.3.4",
47+
"@rollup/plugin-node-resolve": "7.1.1",
3948
"babel-eslint": "10.0.3",
4049
"babel-plugin-add-module-exports": "1.0.2",
4150
"browserstack-local": "1.4.5",

rollup.config.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1+
import nodeResolve from '@rollup/plugin-node-resolve';
12
import { terser } from 'rollup-plugin-terser';
23

34
function chunk(input, name) {
45
return {
5-
input: `dist/esm-browser/${input}.js`,
6+
input: `dist/esm/${input}.js`,
67
output: {
78
file: `dist/umd/${name}.min.js`,
89
format: 'umd',
910
name,
1011
compact: true,
1112
},
12-
plugins: [terser()],
13+
plugins: [nodeResolve({ browser: true }), terser()],
1314
};
1415
}
1516

scripts/build.sh

+4-13
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,12 @@ mkdir -p "$DIR"
1414
# Transpile CommonJS versions of files
1515
babel --env-name commonjs src --source-root src --out-dir "$DIR" --copy-files --quiet
1616

17-
# Transpile ESM versions of files for the browser
18-
babel --env-name esm src --source-root src --out-dir "$DIR/esm-browser" --copy-files --quiet
17+
# Transpile ESM versions of files
18+
babel --env-name esm src --source-root src --out-dir "$DIR/esm" --copy-files --quiet
1919

2020
# No need to have the CLI files in the esm build
21-
rm -rf "$DIR/esm-browser/bin"
22-
rm -rf "$DIR/esm-browser/uuid-bin.js"
23-
24-
for FILE in "$DIR"/esm-browser/*-browser.js
25-
do
26-
echo "Replacing node-specific file for esm-browser: $FILE"
27-
mv "$FILE" "${FILE/-browser.js/.js}"
28-
done
29-
30-
echo "Removing browser-specific files from esm-node"
31-
rm -f "$DIR"/*-browser.js
21+
rm -rf "$DIR/esm/bin"
22+
rm -rf "$DIR/esm/uuid-bin.js"
3223

3324
# UMD Build
3425
mkdir "$DIR/umd"

0 commit comments

Comments
 (0)