Skip to content

Commit 85309f5

Browse files
authored
feat: provide esm browser bundles (#383)
1 parent 506247b commit 85309f5

File tree

4 files changed

+69
-19
lines changed

4 files changed

+69
-19
lines changed

build/build.js

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
const fs = require('fs')
22
const path = require('path')
33
const zlib = require('zlib')
4-
const uglify = require('uglify-js')
4+
const uglify = require('uglify-es')
55
const rollup = require('rollup')
66
const replace = require('rollup-plugin-replace')
7+
const babel = require('rollup-plugin-babel')
78
const version = process.env.VERSION || require('../package.json').version
89
const banner =
910
`/**
@@ -18,6 +19,31 @@ if (!fs.existsSync('dist')) {
1819

1920
const resolve = _path => path.resolve(__dirname, '../', _path)
2021

22+
const babelConfigForModern = {
23+
presets: [
24+
[
25+
'@babel/env',
26+
{
27+
modules: false,
28+
targets: {
29+
esmodules: true
30+
}
31+
}
32+
]
33+
]
34+
}
35+
36+
const babelConfigForLegacy = {
37+
presets: [
38+
[
39+
'@babel/env',
40+
{
41+
modules: false
42+
}
43+
]
44+
]
45+
}
46+
2147
build([
2248
{
2349
file: resolve('dist/vue-class-component.js'),
@@ -36,6 +62,16 @@ build([
3662
{
3763
file: resolve('dist/vue-class-component.esm.js'),
3864
format: 'esm'
65+
},
66+
{
67+
file: resolve('dist/vue-class-component.esm.browser.js'),
68+
format: 'esm',
69+
env: 'development'
70+
},
71+
{
72+
file: resolve('dist/vue-class-component.esm.browser.min.js'),
73+
format: 'esm',
74+
env: 'production'
3975
}
4076
].map(genConfig))
4177

@@ -44,7 +80,13 @@ function genConfig (opts) {
4480
input: {
4581
input: resolve('lib/index.js'),
4682
external: ['vue'],
47-
plugins: []
83+
plugins: [
84+
babel(
85+
opts.format === 'esm' && typeof opts.env === 'string'
86+
? babelConfigForModern
87+
: babelConfigForLegacy
88+
)
89+
]
4890
},
4991
output: {
5092
file: opts.file,
@@ -88,7 +130,7 @@ function buildEntry ({ input, output }) {
88130
.then(bundle => bundle.generate(output))
89131
.then(({ code }) => {
90132
if (isProd) {
91-
var minified = uglify.minify(code, {
133+
const minified = uglify.minify(code, {
92134
output: {
93135
preamble: output.banner,
94136
ascii_only: true

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,13 @@
5656
"reflect-metadata": "^0.1.12",
5757
"rimraf": "^2.6.2",
5858
"rollup": "^0.66.5",
59+
"rollup-plugin-babel": "^4.3.3",
5960
"rollup-plugin-replace": "^2.0.0",
6061
"testdouble": "^3.5.0",
6162
"ts-loader": "^5.2.1",
6263
"typescript": "^3.1.1",
6364
"typescript-eslint-parser": "^20.0.0",
64-
"uglify-js": "^3.3.10",
65+
"uglify-es": "^3.3.9",
6566
"vue": "^2.5.13",
6667
"vue-loader": "^15.4.2",
6768
"vue-template-compiler": "^2.5.13",

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"compilerOptions": {
3-
"target": "es5",
3+
"target": "esnext",
44
"lib": [
55
"dom",
66
"es2015"

yarn.lock

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,11 +1550,6 @@ commander@~2.13.0:
15501550
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
15511551
integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
15521552

1553-
commander@~2.17.1:
1554-
version "2.17.1"
1555-
resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
1556-
integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
1557-
15581553
commondir@^1.0.1:
15591554
version "1.0.1"
15601555
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2219,6 +2214,11 @@ estree-walker@^0.5.2:
22192214
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39"
22202215
integrity sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==
22212216

2217+
estree-walker@^0.6.1:
2218+
version "0.6.1"
2219+
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
2220+
integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
2221+
22222222
esutils@^2.0.2:
22232223
version "2.0.2"
22242224
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -4397,6 +4397,14 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
43974397
hash-base "^3.0.0"
43984398
inherits "^2.0.1"
43994399

4400+
rollup-plugin-babel@^4.3.3:
4401+
version "4.3.3"
4402+
resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz#7eb5ac16d9b5831c3fd5d97e8df77ba25c72a2aa"
4403+
integrity sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==
4404+
dependencies:
4405+
"@babel/helper-module-imports" "^7.0.0"
4406+
rollup-pluginutils "^2.8.1"
4407+
44004408
rollup-plugin-replace@^2.0.0:
44014409
version "2.1.0"
44024410
resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.1.0.tgz#f9c07a4a89a2f8be912ee54b3f0f68d91e9ed0ae"
@@ -4414,6 +4422,13 @@ rollup-pluginutils@^2.0.1:
44144422
estree-walker "^0.5.2"
44154423
micromatch "^2.3.11"
44164424

4425+
rollup-pluginutils@^2.8.1:
4426+
version "2.8.2"
4427+
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
4428+
integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
4429+
dependencies:
4430+
estree-walker "^0.6.1"
4431+
44174432
rollup@^0.66.5:
44184433
version "0.66.5"
44194434
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.66.5.tgz#49b109d3db4772301d84b8ed9617a4481e9a8042"
@@ -4954,22 +4969,14 @@ typescript@^3.1.1:
49544969
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.1.tgz#3362ba9dd1e482ebb2355b02dfe8bcd19a2c7c96"
49554970
integrity sha512-Veu0w4dTc/9wlWNf2jeRInNodKlcdLgemvPsrNpfu5Pq39sgfFjvIIgTsvUHCoLBnMhPoUA+tFxsXjU6VexVRQ==
49564971

4957-
uglify-es@^3.3.4:
4972+
uglify-es@^3.3.4, uglify-es@^3.3.9:
49584973
version "3.3.9"
49594974
resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
49604975
integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
49614976
dependencies:
49624977
commander "~2.13.0"
49634978
source-map "~0.6.1"
49644979

4965-
uglify-js@^3.3.10:
4966-
version "3.4.9"
4967-
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3"
4968-
integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==
4969-
dependencies:
4970-
commander "~2.17.1"
4971-
source-map "~0.6.1"
4972-
49734980
uglifyjs-webpack-plugin@^1.2.4:
49744981
version "1.3.0"
49754982
resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de"

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy