1
0
Fork 0

chore(utils): Migrated to esbuild & removed legacy devenv

This commit is contained in:
Joost De Cock 2022-06-14 13:09:18 +02:00
parent 5f3e001bfe
commit fb858eb45b
3 changed files with 75 additions and 49 deletions

68
packages/utils/build.js Normal file
View file

@ -0,0 +1,68 @@
/* This script will build the various components with esbuild */
const esbuild = require('esbuild')
const pkg = require('./package.json')
// Create banner based on package info
const banner = `/**
* ${pkg.name} | v${pkg.version}
* ${pkg.description}
* (c) ${new Date().getFullYear()} ${pkg.author}
* @license ${pkg.license}
*/`
// Shared esbuild options
const options = {
banner: { js: banner },
bundle: true,
entryPoints: [
'./src/backend/index.js',
'./src/camelCase/index.js',
'./src/capitalize/index.js',
'./src/cloneObject/index.js',
'./src/convertSize/index.js',
'./src/defaultGist/index.js',
'./src/defaultSa/index.js',
'./src/formatImperial/index.js',
'./src/formatMm/index.js',
'./src/isDegMeasurement/index.js',
'./src/measurementAsMm/index.js',
'./src/measurementDiffers/index.js',
'./src/neckstimate/index.js',
'./src/optionDefault/index.js',
'./src/optionType/index.js',
'./src/roundMm/index.js',
'./src/roundMmDown/index.js',
'./src/roundMmUp/index.js',
'./src/sliderStep/index.js',
'./src/smallestImperialStep/index.js',
'./src/storage/index.js',
'./src/tiler/index.js',
'./src/validateEmail/index.js',
'./src/validateTld/index.js',
],
external: [
"@freesewing",
"axios",
],
format: 'cjs',
metafile: process.env.VERBOSE ? true : false,
minify: process.env.NO_MINIFY ? false : true,
loader: { '.js': 'jsx' },
outdir: './',
sourcemap: true,
}
// Let esbuild do its thing
// Only generating CJS since this will be dropped in v3
let result
(async () => {
result = await esbuild
.build(options)
.catch(() => process.exit(1))
if (process.env.VERBOSE) {
const info = await esbuild.analyzeMetafile(result.metafile)
console.log(info)
}
})()

View file

@ -24,14 +24,13 @@
],
"main": "dist/index.js",
"scripts": {
"clean": "rimraf dist",
"build": "rollup -c",
"cibuild_step1": "rollup -c",
"clean": "rimraf backend && rimraf camelCase && rimraf capitalize && rimraf cloneObject && rimraf convertSize && rimraf defaultGist && rimraf defaultSa && rimraf formatImperial && rimraf formatMm && rimraf isDegMeasurement && rimraf measurementAsMm && rimraf measurementDiffers && rimraf neckstimate && rimraf optionDefault && rimraf optionType && rimraf roundMm && rimraf roundMmDown && rimraf roundMmUp && rimraf sliderStep && rimraf smallestImperialStep && rimraf storage && rimraf tiler && rimraf validateEmail && rimraf validateTld",
"build": "node build.js",
"mbuild": "NO_MINIFY=1 node build.js",
"vbuild": "VERBOSE=1 node build.js",
"cibuild_step1": "node build.js",
"test": "echo \"utils: No tests configured. Perhaps you'd like to do this?\" && exit 0",
"pubtest": "npm publish --registry http://localhost:6662",
"pubforce": "npm publish",
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
"start": "rollup -c -w"
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
},
"peerDependencies": {
"tlds": "^1.221.1",
@ -70,10 +69,7 @@
"tag": "latest"
},
"engines": {
"node": ">=12.0.0",
"node": ">=14.0.0",
"npm": ">=6"
},
"rollup": {
"exports": "default"
}
}

View file

@ -1,38 +0,0 @@
import babel from '@rollup/plugin-babel'
import resolve from '@rollup/plugin-node-resolve'
import json from '@rollup/plugin-json'
import peerDepsExternal from 'rollup-plugin-peer-deps-external'
import { name, version, description, author, license } from './package.json'
import utils from './src/index.js'
const banner = `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
const createConfig = (util, module) => {
return {
input: `./src/${util + '/'}index.js`,
output: {
banner,
file: `./${util}/index` + (module ? '.mjs' : '.js'),
format: module ? 'es' : 'cjs',
sourcemap: true,
exports: 'default'
},
plugins: [
babel({
exclude: 'node_modules/**',
babelHelpers: 'bundled'
}),
peerDepsExternal(),
resolve({ modulesOnly: true }),
json(),
]
}
}
const config = []
for (let util of utils) {
config.push(createConfig(util, false))
// Using .mjs causes problems. See #1079
//config.push(createConfig(util, true));
}
export default config