chore: configure dockview-vue package

This commit is contained in:
mathuo 2024-05-09 21:04:45 +01:00
parent 56457fe269
commit 26cd1cc1cc
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
9 changed files with 20 additions and 139 deletions

View File

@ -26,6 +26,8 @@ jobs:
working-directory: packages/dockview-core
- run: npm run build
working-directory: packages/dockview
- run: npm run build
working-directory: packages/dockview-vue
- run: npm run build
working-directory: packages/docs
- run: npm run docs

View File

@ -35,6 +35,9 @@ jobs:
- name: Publish dockview
run: npm publish --provenance
working-directory: packages/dockview
- name: Publish dockview-vue
run: npm publish --provenance
working-directory: packages/dockview-vue
publish-experimental:
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
@ -64,3 +67,6 @@ jobs:
- name: Publish dockview
run: npm publish --provenance --tag experimental
working-directory: packages/dockview
- name: Publish dockview-vue
run: npm publish --provenance --tag experimental
working-directory: packages/dockview-vue

View File

@ -16,7 +16,7 @@
"packages/*"
],
"scripts": {
"build": "lerna run build --scope '{dockview-core,dockview}'",
"build": "lerna run build --scope '{dockview-core,dockview,dockview-vue}'",
"clean": "lerna run clean",
"docs": "typedoc",
"generate-docs": "node scripts/docs.mjs",

View File

@ -1,6 +0,0 @@
const gulp = require('gulp');
const buildfile = require('../../scripts/build');
buildfile.init();
gulp.task('run', gulp.series(['sass']));

View File

@ -41,19 +41,14 @@
"README.md"
],
"scripts": {
"build-only": "vite build",
"build": "npm run build:package",
"build:bundles": "rollup -c",
"build:cjs": "cross-env ../../node_modules/.bin/vue-tsc --build ./tsconfig.json --verbose --extendedDiagnostics",
"build:css": "gulp sass",
"build:esm": "cross-env ../../node_modules/.bin/vue-tsc --build ./tsconfig.esm.json --verbose --extendedDiagnostics",
"build:package": "npm run build-only && npm run build:types",
"build:js": "vite build",
"build:types": "vue-tsc --project tsconfig.build-types.json --declaration --emitDeclarationOnly --outDir dist/types",
"build": "npm run build:js && npm run build:types",
"clean": "rimraf dist/ .build/ .rollup.cache/",
"prepublishOnly": "npm run rebuild && npm run test",
"rebuild": "npm run clean && npm run build",
"test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview",
"test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview --coverage",
"build:types": "vue-tsc --project tsconfig.build-types.json --declaration --emitDeclarationOnly --outDir dist/types "
"test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-vue",
"test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview-vue --coverage"
},
"dependencies": {
"dockview-core": "^1.13.1"

View File

@ -1,116 +0,0 @@
/* eslint-disable */
const { join } = require('path');
const typescript = require('@rollup/plugin-typescript');
const terser = require('@rollup/plugin-terser');
const postcss = require('rollup-plugin-postcss');
const nodeResolve = require('@rollup/plugin-node-resolve');
const vue = require('@vitejs/plugin-vue');
const { name, version, homepage, license } = require('./package.json');
const main = join(__dirname, './scripts/rollupEntryTarget.ts');
const mainNoStyles = join(__dirname, './src/index.ts');
const outputDir = join(__dirname, 'dist');
function outputFile(format, isMinified, withStyles) {
let filename = join(outputDir, name);
if (format !== 'umd') {
filename += `.${format}`;
}
if (isMinified) {
filename += '.min';
}
if (!withStyles) {
filename += '.noStyle';
}
return `${filename}.js`;
}
function getInput(options) {
const { withStyles } = options;
if (withStyles) {
return main;
}
return mainNoStyles;
}
function createBundle(format, options) {
const { withStyles, isMinified } = options;
const input = getInput(options);
const file = outputFile(format, isMinified, withStyles);
const external = [];
const output = {
file,
format,
sourcemap: true,
globals: {},
banner: [
`/**`,
` * ${name}`,
` * @version ${version}`,
` * @link ${homepage}`,
` * @license ${license}`,
` */`,
].join('\n'),
};
const plugins = [
nodeResolve({
include: ['node_modules/dockview-core/**'],
}),
typescript({
tsconfig: 'tsconfig.config.json',
}),
vue({}),
];
if (isMinified) {
plugins.push(terser());
}
if (withStyles) {
plugins.push(postcss());
}
if (format === 'umd') {
output['name'] = name;
}
external.push('react', 'react-dom');
if (format === 'umd') {
output.globals['react'] = 'React';
output.globals['react-dom'] = 'ReactDOM';
}
return {
input,
output,
plugins,
external,
};
}
module.exports = [
// amd
createBundle('amd', { withStyles: false, isMinified: false }),
createBundle('amd', { withStyles: true, isMinified: false }),
createBundle('amd', { withStyles: false, isMinified: true }),
createBundle('amd', { withStyles: true, isMinified: true }),
// umd
createBundle('umd', { withStyles: false, isMinified: false }),
createBundle('umd', { withStyles: true, isMinified: false }),
createBundle('umd', { withStyles: false, isMinified: true }),
createBundle('umd', { withStyles: true, isMinified: true }),
// cjs
createBundle('cjs', { withStyles: true, isMinified: false }),
// esm
createBundle('esm', { withStyles: true, isMinified: false }),
createBundle('esm', { withStyles: true, isMinified: true }),
];

View File

@ -1,2 +0,0 @@
import '../dist/styles/dockview.css';
export * from '../src/index';

View File

@ -5,6 +5,7 @@ import vue from '@vitejs/plugin-vue';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
build: {
minify: false,
lib: {
@ -13,6 +14,7 @@ export default defineConfig({
name: 'dockview-vue',
// the name of the output files when the build is run
fileName: (format) => `dockview-vue.${format}.js`,
formats: ['es', 'umd', 'cjs'],
},
rollupOptions: {
// make sure to externalize deps that shouldn't be bundled

View File

@ -1,9 +1,9 @@
sonar.projectKey=mathuo_dockview
sonar.organization=dockview
sonar.inclusions=packages/dockview/src/**/*,packages/dockview-core/src/**/*
sonar.exclusions=packages/dockview/src/__tests__/**,packages/dockview-core/src/__tests__/**
sonar.tests=packages/dockview/src/__tests__,packages/dockview-core/src/__tests__
sonar.inclusions=packages/dockview/src/**/*,packages/dockview-core/src/**/*,packages/dockview-vue/src/**/*
sonar.exclusions=packages/dockview/src/__tests__/**,packages/dockview-core/src/__tests__/**,packages/dockview-vue/src/__tests__/**
sonar.tests=packages/dockview/src/__tests__,packages/dockview-core/src/__tests__,packages/dockview-vue/src/__tests__
sonar.testExecutionReportPaths=test-report.xml
sonar.javascript.lcov.reportPaths=coverage/lcov.info