onnxruntime/js/common/build.js
Yulong Wang e3e4926d00
[js/common] allow import onnxruntime-common as ESM and CJS (#15772)
### Description
allow import onnxruntime-common as ESM and CJS.
2023-06-12 12:05:11 -07:00

26 lines
1.1 KiB
JavaScript

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
'use strict';
import {execSync} from 'node:child_process';
import {writeFileSync} from 'node:fs';
import {resolve, dirname} from 'node:path';
import {fileURLToPath} from 'node:url';
const __dirname = dirname(fileURLToPath(import.meta.url));
// build the following folders:
// - dist/cjs
// - dist/esm
execSync('npm run build:cjs', {shell: true, stdio: 'inherit', cwd: __dirname});
execSync('npm run build:esm', {shell: true, stdio: 'inherit', cwd: __dirname});
// generate package.json files under each of the dist folders for commonJS and ESModule
// this trick allows typescript to import this package as different module type
// see also: https://evertpot.com/universal-commonjs-esm-typescript-packages/
writeFileSync(resolve(__dirname, './dist/cjs', 'package.json'), '{"type": "commonjs"}');
writeFileSync(resolve(__dirname, './dist/esm', 'package.json'), '{"type": "module"}');
// launch webpack to generate bundles
execSync('npm run build:bundles', {shell: true, stdio: 'inherit', cwd: __dirname});