diff --git a/packages/pattern-info/build.js b/packages/pattern-info/build.js new file mode 100644 index 00000000000..543259e899a --- /dev/null +++ b/packages/pattern-info/build.js @@ -0,0 +1,43 @@ +/* This script will build the package 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/index.js'], + external: ["@freesewing"], + metafile: process.env.VERBOSE ? true : false, + minify: process.env.NO_MINIFY ? false : true, + sourcemap: true, +} + +// Different formats +const formats = { + cjs: "dist/index.js", + esm: "dist/index.mjs", +} + +// Let esbuild generate different formats +let result +(async () => { + for (const [format, outfile] of Object.entries(formats)) { + result = await esbuild + .build({ ...options, outfile, format }) + .catch(() => process.exit(1)) + } + + if (process.env.VERBOSE) { + const info = await esbuild.analyzeMetafile(result.metafile) + console.log(info) + } +})() diff --git a/packages/pattern-info/package.json b/packages/pattern-info/package.json index 116c045fc82..1ed22f9b043 100644 --- a/packages/pattern-info/package.json +++ b/packages/pattern-info/package.json @@ -26,13 +26,12 @@ "module": "dist/index.mjs", "scripts": { "clean": "rimraf dist", - "build": "rollup -c", + "build": "node build.js", + "mbuild": "NO_MINIFY=1 node build.js", + "vbuild": "VERBOSE=1 node build.js", "test": "echo \"pattern-info: 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", - "cibuild_step2": "node src/prebuild.js && rollup -c", + "cibuild_step2": "node build.js", "prebuild": "node src/prebuild.js" }, "peerDependencies": {}, @@ -48,10 +47,7 @@ "tag": "latest" }, "engines": { - "node": ">=12.0.0", + "node": ">=14.0.0", "npm": ">=6" - }, - "rollup": { - "exports": "named" } } diff --git a/packages/pattern-info/rollup.config.js b/packages/pattern-info/rollup.config.js deleted file mode 100644 index 83bc5ef0eec..00000000000 --- a/packages/pattern-info/rollup.config.js +++ /dev/null @@ -1,29 +0,0 @@ -import resolve from '@rollup/plugin-node-resolve' -import commonjs from '@rollup/plugin-commonjs' -import json from '@rollup/plugin-json' -import peerDepsExternal from 'rollup-plugin-peer-deps-external' -import { name, version, description, author, license, main, module, rollup } from './package.json' - -const banner = `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */` -const output = [ - { - banner, - file: main, - format: 'cjs', - sourcemap: true, - exports: rollup.exports, - }, -] -if (typeof module !== 'undefined') - output.push({ - banner, - file: module, - format: 'es', - sourcemap: true, - }) - -export default { - input: 'src/index.js', - output, - plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()], -} diff --git a/packages/pattern-info/src/prebuild.js b/packages/pattern-info/src/prebuild.js index 74a71ee70d2..1f23a3e5f24 100644 --- a/packages/pattern-info/src/prebuild.js +++ b/packages/pattern-info/src/prebuild.js @@ -138,6 +138,7 @@ const optionalMeasurements = {} const versions = {} const info = {} for (let pattern of Object.keys(patterns)) { + if (typeof patterns[pattern] === 'undefined') console.log({pattern}) options[pattern] = patternOptions(patterns[pattern]) optionGroups[pattern] = patterns[pattern].optionGroups parts[pattern] = patternParts(patterns[pattern])