diff options
| author | okayurisotto <aytkzm@gmail.com> | 2023-04-10 19:43:15 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-10 19:43:15 +0900 |
| commit | 6a23ffcce5db64dcaa275d2c9be137b30355e9bd (patch) | |
| tree | a705ba4cb088f56b78ca7f21c2d3eff74d569bc3 /packages | |
| parent | fix(frontend): webhook, 連携アプリ一覧でコンテンツが重複し... (diff) | |
| download | sharkey-6a23ffcce5db64dcaa275d2c9be137b30355e9bd.tar.gz sharkey-6a23ffcce5db64dcaa275d2c9be137b30355e9bd.tar.bz2 sharkey-6a23ffcce5db64dcaa275d2c9be137b30355e9bd.zip | |
swのesbuildの更新とビルドスクリプトの更新 (#10549)
* cleanup(sw/build.js)
* fix(sw/build.js): `define`に真偽値を渡していた問題を修正
`define`では文字列を渡さなければならないので、`JSON.stringify`をするようにした。
* fix(sw/build.js): `string`が期待される`define`において`undefined`になる場合がある問題を修正
* update(sw): esbuild 0.17.15
* fixup! update(sw): esbuild 0.17.15
* fixup! fix(sw/build.js): `string`が期待される`define`において`undefined`になる場合がある問題を修正
コメントの文言を調整
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/sw/build.js | 53 | ||||
| -rw-r--r-- | packages/sw/package.json | 2 |
2 files changed, 30 insertions, 25 deletions
diff --git a/packages/sw/build.js b/packages/sw/build.js index 72d9db9c0f..ad16fb9497 100644 --- a/packages/sw/build.js +++ b/packages/sw/build.js @@ -1,3 +1,5 @@ +// @ts-check + const esbuild = require('esbuild'); const locales = require('../../locales'); const meta = require('../../package.json'); @@ -5,33 +7,36 @@ const watch = process.argv[2]?.includes('watch'); console.log('Starting SW building...'); -esbuild.build({ - entryPoints: [ `${__dirname}/src/sw.ts` ], +/** @type {esbuild.BuildOptions} */ +const buildOptions = { + absWorkingDir: __dirname, bundle: true, + define: { + _DEV_: JSON.stringify(process.env.NODE_ENV !== 'production'), + _ENV_: JSON.stringify(process.env.NODE_ENV ?? ''), // `NODE_ENV`が`undefined`なとき`JSON.stringify`が`undefined`を返してエラーになってしまうので`??`を使っている + _LANGS_: JSON.stringify(Object.entries(locales).map(([k, v]) => [k, v._lang_])), + _PERF_PREFIX_: JSON.stringify('Misskey:'), + _VERSION_: JSON.stringify(meta.version), + }, + entryPoints: [`${__dirname}/src/sw.ts`], format: 'esm', - treeShaking: true, + loader: { + '.ts': 'ts', + }, minify: process.env.NODE_ENV === 'production', - absWorkingDir: __dirname, outbase: `${__dirname}/src`, outdir: `${__dirname}/../../built/_sw_dist_`, - loader: { - '.ts': 'ts' - }, + treeShaking: true, tsconfig: `${__dirname}/tsconfig.json`, - define: { - _VERSION_: JSON.stringify(meta.version), - _LANGS_: JSON.stringify(Object.entries(locales).map(([k, v]) => [k, v._lang_])), - _ENV_: JSON.stringify(process.env.NODE_ENV), - _DEV_: process.env.NODE_ENV !== 'production', - _PERF_PREFIX_: JSON.stringify('Misskey:'), - }, - watch: watch ? { - onRebuild(error, result) { - if (error) console.error('SW: watch build failed:', error); - else console.log('SW: watch build succeeded:', result); - }, - } : false, -}).then(result => { - if (watch) console.log('watching...'); - else console.log('done,', JSON.stringify(result)); -}); +}; + +(async () => { + if (!watch) { + await esbuild.build(buildOptions); + console.log('done'); + } else { + const context = await esbuild.context(buildOptions); + await context.watch(); + console.log('watching...'); + } +})(); diff --git a/packages/sw/package.json b/packages/sw/package.json index f82f186619..d7a4a2a4b6 100644 --- a/packages/sw/package.json +++ b/packages/sw/package.json @@ -9,7 +9,7 @@ "lint": "pnpm typecheck && pnpm eslint" }, "dependencies": { - "esbuild": "0.14.42", + "esbuild": "0.17.15", "idb-keyval": "6.2.0", "misskey-js": "workspace:*" }, |