chore: update building script

This commit is contained in:
chenshenhai 2021-07-23 15:41:20 +08:00
parent cd9073cdb5
commit 686ed54b54
6 changed files with 72 additions and 3 deletions

View file

@ -1,5 +1,6 @@
# @idraw/core
* [] License text in JS result
* [] Options default data
* [] Support gradient color
* [] Listen keyboard action

View file

@ -27,6 +27,7 @@
"@babel/preset-typescript": "^7.13.0",
"@microsoft/api-extractor": "^7.13.2",
"@rollup/plugin-node-resolve": "^11.2.1",
"@rollup/pluginutils": "^4.1.1",
"@types/jest": "^26.0.23",
"@typescript-eslint/eslint-plugin": "^4.25.0",
"@typescript-eslint/parser": "^4.25.0",
@ -50,7 +51,9 @@
"postcss": "^8.2.9",
"puppeteer": "^8.0.0",
"rollup": "^2.40.0",
"rollup-plugin-cleanup": "^3.2.1",
"rollup-plugin-postcss": "^4.0.0",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-typescript2": "^0.30.0",
"serve-handler": "^6.1.3",
"ts-node": "^9.1.1",

View file

@ -1,9 +1,12 @@
const path = require('path');
const typescript = require('rollup-plugin-typescript2');
const { terser } = require('rollup-plugin-terser');
const cleanup = require('rollup-plugin-cleanup');
const { nodeResolve } = require('@rollup/plugin-node-resolve');
const { getTargetPackage } = require('./config');
const dtsPlugin = require('./util/dts-plugin');
const stylePlugin = require('./util/style-plugin');
// const cleanPlugin = require('./util/clean-plugin');
const resolveFile = function(names = []) {
return path.join(__dirname, '..', 'packages', ...names)
@ -58,8 +61,31 @@ function createConfigItem(params) {
exports
},
plugins: [
...[stylePlugin(), nodeResolve(), typescript()],
...[
stylePlugin(),
nodeResolve(),
typescript({
tsconfig: path.resolve(__dirname, '..', 'tsconfig.json'),
tsconfigOverride: {}
}),
],
...plugins,
...[
// cleanPlugin({
// sourcemap: process.env.NODE_ENV === 'development',
// }),
// terser({
// output: {
// beautify: true,
// // comments: false,
// // indent_level: 2,
// // quote_style: 3,
// }
// })
cleanup({
comments: 'none',
}),
]
],
};
}

View file

@ -0,0 +1,39 @@
const extname = require("path").extname;
const { createFilter } = require('@rollup/pluginutils');
const MagicString = require('magic-string');
module.exports = function cleanPlugin(options = {}) {
const filter = createFilter(options.include, options.exclude);
const sourcemap = options.sourcemap === true;
return {
name: 'clean-plugin',
transform (code, id) {
if (!filter(id) || !(['.js', '.ts'].indexOf(extname(id)) >= 0)) return;
let codeStr = `${code}`;
const magic = new MagicString(codeStr);
if (sourcemap === true) {
codeStr = codeStr.replace(/\/\*\!([^\\]+)\*\//gi, function(match, offset) {
const start = offset;
const end = offset + match.length;
magic.overwrite(start, end, '');
return '';
});
}
const resultCode = magic.toString();
let resultMap = false;
if (sourcemap === true) {
resultMap = magic.generateMap({
hires: true,
});
}
return {
code: resultCode,
map: resultMap,
};
}
};
}

View file

@ -26,7 +26,7 @@ module.exports = function myPlugin(pkgName) {
if (extractorResult.succeeded) {
// concat additional d.ts to rolled-up dts
const typesDir = path.resolve(pkgDir, 'types')
if (await fs.exists(typesDir)) {
if (fs.existsSync(typesDir)) {
const dtsPath = path.resolve(pkgDir, pkg.types)
const existing = await fs.readFile(dtsPath, 'utf-8')
const typeFiles = await fs.readdir(typesDir)

View file

@ -13,7 +13,7 @@
"experimentalDecorators": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"removeComments": false,
"removeComments": true,
"jsx": "preserve",
"lib": ["ESNext", "dom"],
"rootDir": ".",