mirror of
https://github.com/youzan/vant.git
synced 2025-10-18 17:51:54 +00:00
build(@vant/use): using babel to build
This commit is contained in:
41
packages/vant-use/scripts/build.js
Normal file
41
packages/vant-use/scripts/build.js
Normal file
@@ -0,0 +1,41 @@
|
||||
const glob = require('fast-glob');
|
||||
const { join } = require('path');
|
||||
const { transformAsync } = require('@babel/core');
|
||||
const { readFileSync, outputFileSync } = require('fs-extra');
|
||||
|
||||
const srcDir = join(__dirname, '..', 'src');
|
||||
const distDir = join(__dirname, '..', 'dist');
|
||||
const srcFiles = glob.sync(join(srcDir, '**', '*.ts'), {
|
||||
ignore: ['**/node_modules', '**/*.spec.ts'],
|
||||
});
|
||||
|
||||
const compile = (filePath, distDir) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const code = readFileSync(filePath, 'utf-8');
|
||||
const distPath = filePath.replace(srcDir, distDir).replace('.ts', '.js');
|
||||
|
||||
transformAsync(code, { filename: filePath })
|
||||
.then((result) => {
|
||||
if (result) {
|
||||
outputFileSync(distPath, result.code);
|
||||
resolve();
|
||||
}
|
||||
})
|
||||
.catch(reject);
|
||||
});
|
||||
};
|
||||
|
||||
async function build() {
|
||||
// esm output
|
||||
await Promise.all(
|
||||
srcFiles.map((srcFile) => compile(srcFile, join(distDir, 'esm')))
|
||||
);
|
||||
|
||||
// cjs output
|
||||
process.env.BABEL_MODULE = 'commonjs';
|
||||
await Promise.all(
|
||||
srcFiles.map((srcFile) => compile(srcFile, join(distDir, 'cjs')))
|
||||
);
|
||||
}
|
||||
|
||||
build();
|
Reference in New Issue
Block a user