improve build setup and prepare for rollup3

This commit is contained in:
Rene Haas
2022-10-27 10:45:19 +02:00
parent f00616a5eb
commit f76870b1d9
8 changed files with 752 additions and 500 deletions
+5 -5
View File
@@ -2,11 +2,11 @@
"name": "@~local/rollup",
"private": true,
"dependencies": {
"@rollup/plugin-alias": "^3.1.9",
"@rollup/plugin-babel": "^5.3.1",
"@rollup/plugin-commonjs": "^22.0.2",
"@rollup/plugin-html": "^0.2.0",
"@rollup/plugin-node-resolve": "^13.3.0",
"@rollup/plugin-alias": "^4.0.2",
"@rollup/plugin-babel": "^6.0.2",
"@rollup/plugin-commonjs": "^23.0.2",
"@rollup/plugin-html": "^1.0.1",
"@rollup/plugin-json": "^5.0.1",
"autoprefixer": "^10.4.7",
"cssnano": "^5.1.12",
"glob": "^7.1.6",
+17
View File
@@ -0,0 +1,17 @@
const path = require('path');
const { terser: rollupTerser } = require('rollup-plugin-terser');
const { rollupJson } = require('./plugins');
module.exports = (resolve, options) => {
const { extractPackageJson, outDir, rollup } = options;
const { input = './package.json', output = './package.json' } = extractPackageJson;
return {
input,
output: {
file: path.resolve(outDir, output),
},
plugins: [rollupJson()],
};
};
+2 -9
View File
@@ -3,13 +3,13 @@ const sass = require('sass');
const postcss = require('postcss');
const cssnano = require('cssnano');
const autoprefixer = require('autoprefixer');
const { nodeResolve: rollupPluginResolve } = require('@rollup/plugin-node-resolve');
const { babel: rollupBabelInputPlugin } = require('@rollup/plugin-babel');
const { esbuildResolve: rollupPluginEsBuildResolve } = require('rollup-plugin-esbuild-resolve');
const rollupPluginScss = require('rollup-plugin-scss');
const rollupPluginIgnoreImport = require('rollup-plugin-ignore-import');
const rollupPluginCommonjs = require('@rollup/plugin-commonjs');
const rollupPluginAlias = require('@rollup/plugin-alias');
const rollupPluginJson = require('@rollup/plugin-json');
const rollupPluginTs = require('rollup-plugin-typescript2');
const rollupPluginLicense = require('rollup-plugin-license');
const rollupPluginEsBuild = require('../plugins/esbuild');
@@ -37,14 +37,6 @@ module.exports = {
sourceMap: sourcemap,
extensions: resolve.extensions,
}),
rollupResolve: (resolve, resolveOnly) =>
rollupPluginResolve({
mainFields: ['browser', 'umd:main', 'module', 'main'],
moduleDirectories: resolve.directories,
extensions: resolve.extensions,
ignoreSideEffectsForRoot: true,
...(resolveOnly ? { resolveOnly } : {}),
}),
rollupEsbuildResolve: (resolve) =>
rollupPluginEsBuildResolve({
esbuild: {
@@ -136,4 +128,5 @@ module.exports = {
commentStyle: 'ignored',
},
}),
rollupJson: () => rollupPluginJson(),
};
+7
View File
@@ -37,6 +37,7 @@ const mergeAndResolveOptions = (userOptions) => {
rollup: defaultRollup,
extractStyles: defaultExtractStyles,
extractTypes: defaultExtractTypes,
extractPackageJson: defaultExtractPackageJson,
verbose: defaultVerbose,
banner: defaultBanner,
useEsbuild: defaultUseEsbuild,
@@ -50,6 +51,7 @@ const mergeAndResolveOptions = (userOptions) => {
versions: rawVersions,
extractStyles: rawExtractStyles,
extractTypes: rawExtractTypes,
extractPackageJson: rawExtractPackageJson,
verbose: rawVerbose,
banner: rawBanner,
useEsbuild: rawUseEsbuild,
@@ -62,6 +64,7 @@ const mergeAndResolveOptions = (userOptions) => {
project: project || path.basename(projectPath),
extractStyles: rawExtractStyles ?? defaultExtractStyles,
extractTypes: rawExtractTypes ?? defaultExtractTypes,
extractPackageJson: rawExtractPackageJson ?? defaultExtractPackageJson,
verbose: rawVerbose ?? defaultVerbose,
banner: rawBanner ?? defaultBanner,
versions: rawVersions ?? defaultVersions,
@@ -95,6 +98,7 @@ const mergeAndResolveOptions = (userOptions) => {
paths.types = resolvePath(projectPath, path.join(outDir, types));
paths.styles = resolvePath(projectPath, path.join(outDir, styles));
mergedOptions.outDir = resolvePath(projectPath, outDir);
mergedOptions.rollup.input = resolvePath(projectPath, mergedOptions.rollup.input, true);
mergedOptions.rollup.output = {
...(mergedOptions.rollup.output || {}),
@@ -116,6 +120,9 @@ const createConfig = (userOptions = {}) => {
const resultArr = Array.isArray(result) ? result : [result];
if (verbose) {
if (!Array.isArray(resultArr[0].plugins)) {
resultArr[0].plugins = [];
}
resultArr[0].plugins.push({
name: 'PROJECT',
buildStart() {
+1
View File
@@ -25,6 +25,7 @@ module.exports = {
],
extractStyles: false,
extractTypes: false,
extractPackageJson: false,
alias: {},
rollup: {
input: './src/index',
+4 -2
View File
@@ -2,14 +2,16 @@ const bundleScriptDefault = require('./bundle/script.default');
const bundleScriptEsbuild = require('./bundle/script.esbuild');
const bundleStyles = require('./bundle/styles');
const bundleTypes = require('./bundle/types');
const bundlePackageJson = require('./bundle/packageJson');
module.exports = (resolve, options, esbuild) => {
const { extractTypes, extractStyles } = options;
const { extractTypes, extractStyles, extractPackageJson } = options;
const bundleScript = esbuild ? bundleScriptEsbuild : bundleScriptDefault;
const styles = extractStyles && bundleStyles(resolve, options);
const types = extractTypes && bundleTypes(resolve, options);
const js = bundleScript(resolve, options);
const pkgJson = extractPackageJson && bundlePackageJson(resolve, options);
return [styles, types, js].flat().filter((build) => !!build);
return [styles, types, js, pkgJson].flat().filter((build) => !!build);
};
+715 -484
View File
File diff suppressed because it is too large Load Diff
@@ -9,6 +9,7 @@ module.exports = createRollupConfig({
verbose: true,
extractStyles: true,
extractTypes: true,
extractPackageJson: false,
versions: [
{
format: 'cjs',