summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-08-20 21:34:56 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-08-20 21:34:56 +0900
commit3cb5ed167af31782acecbc2ccbc2e7a89ba6d633 (patch)
tree61384dcd9a09987f68aab79f4afd7322da4963a5
parentfix: use correct query generate function (#7657) (diff)
downloadsharkey-3cb5ed167af31782acecbc2ccbc2e7a89ba6d633.tar.gz
sharkey-3cb5ed167af31782acecbc2ccbc2e7a89ba6d633.tar.bz2
sharkey-3cb5ed167af31782acecbc2ccbc2e7a89ba6d633.zip
fix: meta.jsonをimportしないように
Fix #7671
-rw-r--r--CONTRIBUTING.md3
-rw-r--r--src/boot/master.ts10
-rw-r--r--src/config/load.ts2
3 files changed, 13 insertions, 2 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b16d9a75d8..b3c67ff4d7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -250,6 +250,9 @@ npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前
### コネクションには`markRaw`せよ
**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。
+### JSONのimportに気を付けよう
+TypeScriptでjsonをimportすると、tscでコンパイルするときにそのjsonファイルも一緒にdistディレクトリに吐き出されてしまう。この挙動により、意図せずファイルの書き換えが発生することがあるので、jsonをimportするときは書き換えられても良いものかどうか確認すること。書き換えされて欲しくない場合は、importで読み込むのではなく、`fs.readFileSync`などの関数を使って読み込むようにすればよい。
+
## その他
### HTMLのクラス名で follow という単語は使わない
広告ブロッカーで誤ってブロックされる
diff --git a/src/boot/master.ts b/src/boot/master.ts
index 03a28c339b..d9cc7c16be 100644
--- a/src/boot/master.ts
+++ b/src/boot/master.ts
@@ -1,3 +1,6 @@
+import * as fs from 'fs';
+import { fileURLToPath } from 'url';
+import { dirname } from 'path';
import * as os from 'os';
import * as cluster from 'cluster';
import * as chalk from 'chalk';
@@ -11,7 +14,12 @@ import { lessThan } from '@/prelude/array';
import { program } from '../argv';
import { showMachineInfo } from '@/misc/show-machine-info';
import { initDb } from '../db/postgre';
-import * as meta from '../meta.json';
+
+//const _filename = fileURLToPath(import.meta.url);
+const _filename = __filename;
+const _dirname = dirname(_filename);
+
+const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8'));
const logger = new Logger('core', 'cyan');
const bootLogger = logger.createSubLogger('boot', 'magenta', false);
diff --git a/src/config/load.ts b/src/config/load.ts
index 6a1cf60a41..c7965e6c41 100644
--- a/src/config/load.ts
+++ b/src/config/load.ts
@@ -7,7 +7,6 @@ import { fileURLToPath } from 'url';
import { dirname } from 'path';
import * as yaml from 'js-yaml';
import { Source, Mixin } from './types';
-import * as meta from '../meta.json';
//const _filename = fileURLToPath(import.meta.url);
const _filename = __filename;
@@ -26,6 +25,7 @@ const path = process.env.NODE_ENV === 'test'
: `${dir}/default.yml`;
export default function load() {
+ const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8'));
const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source;
const mixin = {} as Mixin;