Skip to content

Commit 3bd1df6

Browse files
tayeinteractjs-ci
authored andcommitted
fix: bundle to ES5 syntax
Close taye#1023 # Conflicts: # packages/@interactjs/dev-tools/visualizer/plugin.ts
1 parent 5ca9fe7 commit 3bd1df6

File tree

7 files changed

+35
-277
lines changed

7 files changed

+35
-277
lines changed

babel.config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
const isProd = process.env.NODE_ENV === 'production'
22

33
module.exports = {
4+
targets: { ie: 9 },
5+
browserslistConfigFile: false,
46
presets: [
57
[require.resolve('@babel/preset-env'), { exclude: ['transform-regenerator'] }],
68
[
79
require.resolve('@babel/preset-typescript'),
8-
{ isTsx: false, onlyRemoveTypeImports: true, allExtensions: true, allowDeclareFields: true },
10+
{ isTSX: false, onlyRemoveTypeImports: true, allExtensions: true, allowDeclareFields: true },
911
],
1012
],
1113

@@ -18,7 +20,6 @@ module.exports = {
1820
regenerator: false,
1921
},
2022
],
21-
isProd && require.resolve('./scripts/babel/for-of-array'),
2223
isProd && require.resolve('@babel/plugin-transform-optional-catch-binding'),
2324
isProd && [require.resolve('@babel/plugin-transform-optional-chaining'), { loose: true }],
2425
isProd && [require.resolve('@babel/plugin-transform-nullish-coalescing-operator'), { loose: true }],

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
"@babel/plugin-transform-runtime": "^7.18.2",
2828
"@babel/preset-env": "^7.18.2",
2929
"@babel/preset-typescript": "^7.17.12",
30-
"@babel/register": "^7.17.7",
3130
"@babel/runtime": "^7.18.3",
3231
"@rollup/plugin-babel": "^6.0.4",
3332
"@rollup/plugin-node-resolve": "^15.2.3",
@@ -101,7 +100,7 @@
101100
"symbol-tree": "^3.2.4",
102101
"temp": "^0.9.4",
103102
"terser": "^5.14.1",
104-
"ts-node": "^10.8.1",
103+
"ts-node": "^10.9.1",
105104
"typedoc": "^0.25.4",
106105
"typedoc-plugin-markdown": "^3.17.1",
107106
"typedoc-plugin-rename-defaults": "^0.7.0",

scripts/babel/for-of-array.js

Lines changed: 0 additions & 149 deletions
This file was deleted.

scripts/bin/release.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ async function runBuild() {
9595
if (!isPro) {
9696
// bundle interactjs
9797
shell.exec('npm run build:bundle')
98+
// ensure that the output is valid ES5 syntax
99+
shell.exec('acord --silent --ecma5 packages/interactjs/dist/**/*.js')
98100

99101
// generate docs
100102
shell.exec('npm run build:docs')

scripts/bundler.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const terser = require('@rollup/plugin-terser')
77
const { rollup, defineConfig } = require('rollup')
88
const cjs = require('rollup-plugin-cjs-es')
99

10-
const { getModuleDirectories, getBabelConfig, extendBabelOptions, errorExit } = require('./utils')
10+
const { getModuleDirectories, extendBabelOptions, errorExit, getEsnextBabelOptions } = require('./utils')
1111

1212
process.env.NODE_PATH = `${process.env.NODE_PATH || ''}:${path.resolve(__dirname, '..', 'node_modules')}`
1313
require('module').Module._initPaths()
@@ -44,12 +44,19 @@ const createRollupConfigs = async ({
4444
{
4545
babelrc: false,
4646
configFile: false,
47+
browserslistConfigFile: false,
48+
targets: format === 'es' ? undefined : { ie: 9 },
4749
babelHelpers: 'bundled',
4850
skipPreflightCheck: true,
4951
extensions: ['.ts', '.tsx', '.js', '.jsx', '.vue'],
50-
plugins: [require.resolve('@babel/plugin-transform-logical-assignment-operators')].filter(Boolean),
52+
plugins: [
53+
[
54+
require.resolve('@babel/plugin-transform-runtime'),
55+
{ helpers: false, regenerator: format !== 'es' },
56+
],
57+
],
5158
},
52-
getBabelConfig(),
59+
getEsnextBabelOptions(format === 'es' ? { exclude: ['transform-regenerator'] } : {}),
5360
)
5461

5562
return defineConfig({
@@ -69,7 +76,7 @@ const createRollupConfigs = async ({
6976
preventAssignment: true,
7077
values: Object.entries({
7178
npm_package_version: process.env.npm_package_version,
72-
IJS_BUNDLE: 'true',
79+
IJS_BUNDLE: '1',
7380
...env,
7481
}).reduce((acc, [key, value]) => {
7582
acc[`process.env.${key}`] = JSON.stringify(value)

scripts/utils.js

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,31 +35,30 @@ const getBuiltJsFiles = ({ cwd = process.cwd() } = {}) =>
3535
nodir: true,
3636
})
3737

38-
function getBabelConfig() {
39-
let babelConfig
40-
41-
try {
42-
babelConfig = require(path.join(process.cwd(), 'babel.config.js'))
43-
} catch (e) {
44-
babelConfig = require('../babel.config.js')
45-
}
46-
47-
return babelConfig
48-
}
49-
50-
function getEsnextBabelOptions() {
38+
function getEsnextBabelOptions(presetEnvOptions) {
5139
return {
5240
babelrc: false,
5341
configFile: false,
5442
sourceMaps: true,
5543
presets: [
56-
[require.resolve('@babel/preset-typescript'), { allExtensions: true, allowDeclareFields: true }],
44+
[require.resolve('@babel/preset-env'), presetEnvOptions],
45+
[
46+
require.resolve('@babel/preset-typescript'),
47+
{ isTSX: false, onlyRemoveTypeImports: true, allExtensions: true, allowDeclareFields: true },
48+
],
5749
],
5850
plugins: [
5951
require.resolve('./babel/vue-sfc'),
6052
require.resolve('@babel/plugin-proposal-optional-catch-binding'),
61-
[require.resolve('@babel/plugin-proposal-optional-chaining'), { loose: true }],
53+
require.resolve('@babel/plugin-proposal-optional-chaining'),
54+
require.resolve('@babel/plugin-transform-nullish-coalescing-operator'),
55+
require.resolve('@babel/plugin-transform-logical-assignment-operators'),
6256
],
57+
assumptions: {
58+
iterableIsArray: true,
59+
noDocumentAll: true,
60+
noNewArrows: true,
61+
},
6362
}
6463
}
6564

@@ -202,7 +201,6 @@ module.exports = {
202201
sourcesIgnoreGlobs,
203202
lintIgnoreGlobs,
204203
getBuiltJsFiles,
205-
getBabelConfig,
206204
getEsnextBabelOptions,
207205
extendBabelOptions,
208206
getDevPackageDir,

0 commit comments

Comments
 (0)