diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/build-assets.mjs | 97 | ||||
| -rw-r--r-- | scripts/clean-all.js | 3 | ||||
| -rw-r--r-- | scripts/clean.js | 1 | ||||
| -rw-r--r-- | scripts/dev.mjs | 18 |
4 files changed, 56 insertions, 63 deletions
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs index e610a72380..34883e3513 100644 --- a/scripts/build-assets.mjs +++ b/scripts/build-assets.mjs @@ -11,9 +11,7 @@ import * as yaml from 'js-yaml'; import postcss from 'postcss'; import * as terser from 'terser'; -import { build as buildLocales } from '../locales/index.js'; -import generateDTS from '../locales/generateDTS.js'; -import meta from '../package.json' with { type: "json" }; +import { locales } from 'i18n'; import buildTarball from './tarball.mjs'; const configDir = fileURLToPath(new URL('../.config', import.meta.url)); @@ -23,86 +21,59 @@ const configPath = process.env.MISSKEY_CONFIG_YML ? path.resolve(configDir, 'test.yml') : path.resolve(configDir, 'default.yml'); -let locales = buildLocales(); - async function loadConfig() { return fs.readFile(configPath, 'utf-8').then(data => yaml.load(data)).catch(() => null); } async function copyFrontendFonts() { - await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true }); -} - -async function copyFrontendLocales() { - generateDTS(); - - await fs.mkdir('./built/_frontend_dist_/locales', { recursive: true }); - - const v = { '_version_': meta.version }; - - for (const [lang, locale] of Object.entries(locales)) { - await fs.writeFile(`./built/_frontend_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8'); - } + await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true }); } async function copyBackendViews() { - await fs.cp('./packages/backend/src/server/web/views', './packages/backend/built/server/web/views', { recursive: true }); + await fs.cp('./packages/backend/src/server/web/views', './packages/backend/built/server/web/views', { recursive: true }); } async function buildBackendScript() { - await fs.mkdir('./packages/backend/built/server/web', { recursive: true }); + await fs.mkdir('./packages/backend/built/server/web', { recursive: true }); - for (const file of [ - './packages/backend/src/server/web/boot.js', - './packages/backend/src/server/web/boot.embed.js', - './packages/backend/src/server/web/bios.js', - './packages/backend/src/server/web/cli.js', - './packages/backend/src/server/web/error.js', - ]) { - let source = await fs.readFile(file, { encoding: 'utf-8' }); - source = source.replaceAll('LANGS', JSON.stringify(Object.keys(locales))); - const { code } = await terser.minify(source, { toplevel: true }); - await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, code); - } + for (const file of [ + './packages/backend/src/server/web/boot.js', + './packages/backend/src/server/web/boot.embed.js', + './packages/backend/src/server/web/bios.js', + './packages/backend/src/server/web/cli.js', + './packages/backend/src/server/web/error.js', + ]) { + let source = await fs.readFile(file, { encoding: 'utf-8' }); + source = source.replaceAll('LANGS', JSON.stringify(Object.keys(locales))); + const { code } = await terser.minify(source, { toplevel: true }); + await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, code); + } } async function buildBackendStyle() { - await fs.mkdir('./packages/backend/built/server/web', { recursive: true }); + await fs.mkdir('./packages/backend/built/server/web', { recursive: true }); - for (const file of [ - './packages/backend/src/server/web/style.css', - './packages/backend/src/server/web/style.embed.css', - './packages/backend/src/server/web/bios.css', - './packages/backend/src/server/web/cli.css', - './packages/backend/src/server/web/error.css' - ]) { - const source = await fs.readFile(file, { encoding: 'utf-8' }); - const { css } = await postcss([cssnano({ zindex: false })]).process(source, { from: undefined }); - await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, css); - } + for (const file of [ + './packages/backend/src/server/web/style.css', + './packages/backend/src/server/web/style.embed.css', + './packages/backend/src/server/web/bios.css', + './packages/backend/src/server/web/cli.css', + './packages/backend/src/server/web/error.css' + ]) { + const source = await fs.readFile(file, { encoding: 'utf-8' }); + const { css } = await postcss([cssnano({ zindex: false })]).process(source, { from: undefined }); + await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, css); + } } async function build() { - await Promise.all([ - copyFrontendFonts(), - copyFrontendLocales(), - copyBackendViews(), - buildBackendScript(), - buildBackendStyle(), + await Promise.all([ + copyFrontendFonts(), + copyBackendViews(), + buildBackendScript(), + buildBackendStyle(), loadConfig().then(config => config?.publishTarballInsteadOfProvideRepositoryUrl && buildTarball()), - ]); + ]); } await build(); - -if (process.argv.includes('--watch')) { - const watcher = fs.watch('./locales'); - for await (const event of watcher) { - const filename = event.filename?.replaceAll('\\', '/'); - if (/^[a-z]+-[A-Z]+\.yml/.test(filename)) { - console.log(`update ${filename} ...`) - locales = buildLocales(); - await copyFrontendLocales() - } - } -} diff --git a/scripts/clean-all.js b/scripts/clean-all.js index 5a8f9eba23..839ea3ba1c 100644 --- a/scripts/clean-all.js +++ b/scripts/clean-all.js @@ -24,6 +24,9 @@ const fs = require('fs'); fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/sw/node_modules', { recursive: true, force: true }); + fs.rmSync(__dirname + '/../packages/i18n/built', { recursive: true, force: true }); + fs.rmSync(__dirname + '/../packages/i18n/node_modules', { recursive: true, force: true }); + fs.rmSync(__dirname + '/../packages/misskey-js/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/misskey-js/node_modules', { recursive: true, force: true }); diff --git a/scripts/clean.js b/scripts/clean.js index 69a8df76af..5cce8bacab 100644 --- a/scripts/clean.js +++ b/scripts/clean.js @@ -11,6 +11,7 @@ const fs = require('fs'); fs.rmSync(__dirname + '/../packages/frontend/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/frontend-embed/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/icons-subsetter/built', { recursive: true, force: true }); + fs.rmSync(__dirname + '/../packages/i18n/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/misskey-js/built', { recursive: true, force: true }); fs.rmSync(__dirname + '/../packages/misskey-reversi/built', { recursive: true, force: true }); diff --git a/scripts/dev.mjs b/scripts/dev.mjs index e500510b9e..b54004132a 100644 --- a/scripts/dev.mjs +++ b/scripts/dev.mjs @@ -16,6 +16,13 @@ await execa('pnpm', ['clean'], { stderr: process.stderr, }); +// アセットのビルドで依存しているので一番最初に必要 +await execa('pnpm', ['--filter', 'i18n', 'build'], { + cwd: _dirname + '/../', + stdout: process.stdout, + stderr: process.stderr, +}); + await Promise.all([ execa('pnpm', ['build-pre'], { cwd: _dirname + '/../', @@ -38,6 +45,11 @@ await Promise.all([ stdout: process.stdout, stderr: process.stderr, }), + execa('pnpm', ['--filter', 'misskey-js', 'build'], { + cwd: _dirname + '/../', + stdout: process.stdout, + stderr: process.stderr, + }), ]); execa('pnpm', ['build-pre', '--watch'], { @@ -88,6 +100,12 @@ execa('pnpm', ['--filter', 'misskey-js', 'watch', '--no-clean'], { stderr: process.stderr, }); +execa('pnpm', ['--filter', 'i18n', 'watch', '--no-clean'], { + cwd: _dirname + '/../', + stdout: process.stdout, + stderr: process.stderr, +}); + execa('pnpm', ['--filter', 'misskey-reversi', 'watch', '--no-clean'], { cwd: _dirname + '/../', stdout: process.stdout, |