逐步完成前后端服务器
This commit is contained in:
118
frontend/node_modules/zrender/build/build.js
generated
vendored
Normal file
118
frontend/node_modules/zrender/build/build.js
generated
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
// const typescript = require('@rollup/plugin-typescript');
|
||||
const typescript = require('rollup-plugin-typescript2');
|
||||
const replace = require('@rollup/plugin-replace');
|
||||
const rollup = require('rollup');
|
||||
const path = require('path');
|
||||
const processs = require('process');
|
||||
const chalk = require('chalk');
|
||||
const progress = require('./progress');
|
||||
const UglifyJS = require('uglify-js');
|
||||
const fs = require('fs');
|
||||
|
||||
function current() {
|
||||
return (new Date()).toLocaleString();
|
||||
}
|
||||
|
||||
function createInputOption(env, isWatch) {
|
||||
return {
|
||||
input: path.resolve(__dirname, '../index.ts'),
|
||||
plugins: [
|
||||
typescript({
|
||||
clean: !isWatch,
|
||||
tsconfigOverride: {
|
||||
compilerOptions: {
|
||||
// Rollup don't use CommonJS by default.
|
||||
module: 'ES2015',
|
||||
sourceMap: true,
|
||||
// Use the esm d.ts
|
||||
declaration: false
|
||||
}
|
||||
}
|
||||
}),
|
||||
replace({
|
||||
preventAssignment: true,
|
||||
'process.env.NODE_ENV': JSON.stringify(env)
|
||||
}),
|
||||
progress({
|
||||
scope: {
|
||||
total: 0
|
||||
}
|
||||
})
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
const outputOption = {
|
||||
format: 'umd',
|
||||
file: path.resolve(__dirname, '../dist/zrender.js'),
|
||||
sourcemap: true,
|
||||
name: 'zrender'
|
||||
};
|
||||
|
||||
function minify(outPath) {
|
||||
const code = fs.readFileSync(outPath, 'utf-8');
|
||||
const uglifyResult = UglifyJS.minify(code);
|
||||
if (uglifyResult.error) {
|
||||
throw new Error(uglifyResult.error);
|
||||
}
|
||||
fs.writeFileSync(outPath, uglifyResult.code, 'utf-8');
|
||||
}
|
||||
|
||||
if (processs.argv.includes('--watch')) {
|
||||
const watcher = rollup.watch({
|
||||
...createInputOption('development', true),
|
||||
output: [outputOption],
|
||||
watch: {
|
||||
clearScreen: true
|
||||
}
|
||||
});
|
||||
watcher.on('event', event => {
|
||||
switch(event.code) {
|
||||
// case 'START':
|
||||
// console.log(chalk.green('Begin to watch'));
|
||||
// break;
|
||||
case 'BUNDLE_START':
|
||||
console.log(
|
||||
chalk.gray(current()),
|
||||
chalk.blue('File changed. Begin to bundle')
|
||||
);
|
||||
break;
|
||||
case 'BUNDLE_END':
|
||||
console.log(
|
||||
chalk.gray(current()),
|
||||
chalk.green('Finished bundle')
|
||||
);
|
||||
break;
|
||||
case 'ERROR':
|
||||
console.log(
|
||||
chalk.gray(current()),
|
||||
chalk.red(event.error)
|
||||
);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
// Unminified
|
||||
rollup.rollup({
|
||||
...createInputOption('development', false)
|
||||
}).then(bundle => {
|
||||
bundle.write(outputOption)
|
||||
.then(() => {
|
||||
// Minified
|
||||
if (process.argv.indexOf('--minify') >= 0) {
|
||||
rollup.rollup({
|
||||
...createInputOption('production', false)
|
||||
}).then(bundle => {
|
||||
const file = outputOption.file.replace(/.js$/, '.min.js');
|
||||
bundle.write(Object.assign(outputOption, {
|
||||
file,
|
||||
sourcemap: false
|
||||
})).then(function () {
|
||||
minify(file);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user