chore(utils): Migrated to esbuild & removed legacy devenv
This commit is contained in:
parent
5f3e001bfe
commit
fb858eb45b
3 changed files with 75 additions and 49 deletions
68
packages/utils/build.js
Normal file
68
packages/utils/build.js
Normal 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)
|
||||
}
|
||||
})()
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue