mirror of
https://github.com/vector-im/element-web.git
synced 2025-11-08 12:11:07 +01:00
* Move shared components to a packages/ directory so they can be publish more sensibly * Iterate towards split out shared-components module * Move shared component source into src/ subdir * Fix up imports * Include shared components in babel-ing (again) * Remove now unused dependencies * Update import in storybook preview * ...except of course they aren't unused if we import the shared components by source * Ignore shared components deps * Add shared-components to i18n paths and upgrade web-i18n to version that supports doing so * Move storybook stuff to shared-components * Seems we don't need this anymore... * Remove unused deps and remove storybook plugin from eslint * Presumably working-directory is only valid on run steps * Ignore dep & run prettier * Prettier on knips.ts * Hopefully run in right dir * Remember how to software write * Okay... how about THIS way? * Oh right, they were git ignored. Sigh. * Add concurrently * Ignore in knip * Better? * Paaaaaaaackageeeeeeees * More packages * Move playwright snapshots * Still need a custom snapshots dir * Build shared components in their separate package Port https://github.com/element-hq/element-web/pull/30963 to https://github.com/element-hq/element-web/pull/30962 * Add prepare script * try making it a postinstall * no, this probably does want to be prepare postinstall doesn't really make sense since you would not have the dev dependencies at that point * Add workflow to publish shared components * Put in the namespace * Add eslint back * Oh, now knip sees them * Fix another import * Don't lint shared-components with everything else Okay, eslint & tsconfig are tied too closely for this to work and running tsc on the shared components will need its deps installing * Maybe lint shared components please? * Not quite * Fix name, add main, move patch-package to dependencies Although the only patched package is a dev dependency, but the postinstall will fail if patch-package isn't there. * Switch to npm for publishing Mostly because knip seems to this that yarn publish doesn't exist, although actually it seems super confused about versioning so let's just skip it. * Also hopefully enable provenance because why not * Maybe get exports right * Add richlist * Yeah, of course the keys are ordered why would the keys not be ordered * Build web resources first Otherwise yarn prepare won't work * Fix exports and add web-i18n as a dep * prettier * build res for static analysis * more build:res * ViewModel is only an interface so export type * Prettier * Bump to 5 as I'll do at least one test with the publish action
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
/*
|
|
*
|
|
* Copyright 2025 New Vector Ltd.
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
|
|
* Please see LICENSE files in the repository root for full details.
|
|
* /
|
|
*/
|
|
|
|
import { dirname, resolve } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { defineConfig } from "vite";
|
|
import dts from "vite-plugin-dts";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig({
|
|
build: {
|
|
lib: {
|
|
entry: resolve(__dirname, "src/index.ts"),
|
|
name: "Element Web Shared Components",
|
|
// the proper extensions will be added
|
|
fileName: "element-web-shared-components",
|
|
},
|
|
outDir: "dist",
|
|
rollupOptions: {
|
|
// make sure to externalize deps that shouldn't be bundled
|
|
// into your library
|
|
external: ["react", "react-dom"],
|
|
output: {
|
|
// Provide global variables to use in the UMD build
|
|
// for externalized deps
|
|
globals: {
|
|
"react": "react",
|
|
"react-dom": "ReactDom",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
// Alias used by i18n.tsx
|
|
$webapp: resolve(__dirname, "..", "..", "webapp"),
|
|
},
|
|
},
|
|
plugins: [dts({ rollupTypes: true, include: ["src/**/*.{ts,tsx}"], copyDtsFiles: true })],
|
|
});
|